2017-01-16 88 views
0

所以我有一個關於通過ajax和php mysql檢索數據的問題。Ajax,PHP mysql數據庫查詢 - 網絡路由

方案1:

站點是內容是由Ajax請求檢索到的,因爲我們不能在現場進行PHP查詢無刷新的Web應用程序。 (位於國家A)

用戶在(國家B),他點擊訪問我們的mysql數據庫中需要一些數據的頁面。我們發送一個ajax請求到一個php文件,該文件依次執行查詢並將響應發送回瀏覽器,然後使用javascript顯示數據。

情景1問題: 情景1中的流程如何進行?

我在想:

用戶的網頁瀏覽器(B國)AJAX請求---> PHP文件(A國)--->回用戶(B國)

這是正確的嗎?

如果是這樣,那麼當用戶可能在Web服務器的世界另一端時,這可能會很慢。

+0

哪裏是你的代碼的速度? – daulat

+1

這不是代碼問題。這是關於如何處理請求的理論,所以我可以決定是否要專注於無刷新網站或使用標準的PHP書面網站。 –

回答

1

Ajax調用與在瀏覽器中打開網站相同。唯一的區別是,它是在後臺完成的,並且可以支持更多的HTTP方法。因此,如果您的網站和您的Ajax呼叫後端依賴於國家A,則國家B中的用戶總是撥打國家A的電話,無論它是Ajax還是定期呼叫。

但是,您所描述的效果可能會比較慢,因爲呼叫轉移的距離與您的網站無關。大陸之間有非常非常快速的電線,它們將信號傳輸到大約100米處。光速的三分之二(300'000km/s)。

您應但是請注意在A國的服務器及其上行到ISP(在數據中心到ISP足夠快的連接?)

1

通常,後端(PHP)和前端(AJAX)位於同一臺服務器上。然而數據庫位於不同的服務器上。考慮到每種情況下的權衡,這完全取決於您如何決定流程。

如果後端和前端位於不同的服務器上,則必須由服務器處理CORS(跨源)請求。

由於數據中心具有非常高的上行鏈路和下行鏈路速度,因此會有非常微不足道的延遲。 但是,如果您要傳輸大量數據,效果將會很明顯。

+0

那麼,只要前端和後端位於服務器上,ajax請求在服務器本身上執行,你說的是什麼?不通過用戶的瀏覽器。因爲我認爲與直接查詢mysql數據庫相比,ajaxing php文件會比較慢。 –

+0

不會在服務器上執行ajax請求。我所說的是,由於數據中心具有較高的上行鏈路,延遲不會很顯着。它幾乎立即被髮送到瀏覽器。 – Rishabh