我問你,是因爲我沒有任何想法...Ajax請求的時間太長
我做了從服務器獲取較小的數據的Ajax請求。 json的答案已經被服務器緩存了,所以速度非常快。
像
window.xhr = $.ajax({
url: domain+'index.php?fx_action=ajax&fx_mode=continents&fx_type=countries&fx_ajaxid='+window.currentajaxrequest+'&fx_id='+window.id+'&fx_page='+(window.page-1)+'&fx_pager='+window.pager+'&fx_order='+window.order,
type: 'POST',
dataType: 'json',
timeout: 5000,
cache: false,
async: true,
beforeSend: function() {
...
},
error: function (xhr, ajaxOptions, thrownError) {
return false;
},
success: function (data) {
...
但答案的時間上滑動的規模龐大,有時需要1秒,有時剛67的毫秒...
continents.js:65 http://teszt.domain.com/index.php?fx_action=ajax&fx_mode=continents&fx_type=countries&fx_ajaxid=0&fx_id=6&fx_page=1&fx_pager=9&fx_order=name
continents.js:100 start: 0
continents.js:101 beforesend: 9
continents.js:102 success: 5087
continents.js:103 complete: 5096
continents.js:65 http://teszt.domain.com/index.php?fx_action=ajax&fx_mode=continents&fx_type=countries&fx_ajaxid=1&fx_id=6&fx_page=2&fx_pager=9&fx_order=name
continents.js:100 start: 0
continents.js:101 beforesend: 9
continents.js:102 success: 70
continents.js:103 complete: 77
continents.js:65 http://teszt.domain.com/index.php?fx_action=ajax&fx_mode=continents&fx_type=countries&fx_ajaxid=2&fx_id=6&fx_page=3&fx_pager=9&fx_order=name
continents.js:100 start: 0
continents.js:101 beforesend: 11
continents.js:102 success: 301
continents.js:103 complete: 304
在得到同樣的數據結構幾乎相同的千字節大小。一切都由服務器緩存。
在服務器端,php的運行時間總是大約30-40ms。我的錯誤是什麼?
我在本地運行的Web服務器上有類似的問題。我會想象它會更快,但令人驚訝的是一些網站比它有更好的表現! – Blender
也許服務器很慢?也許在你的測試PC上運行一個洪流客戶端,這會混淆所有連接(確定我遇到了這個問題:D) – GolezTrol
瀏覽器只對並行服務器執行有限數量的請求。根據一致請求的數量,這可能會有所不同,因爲有些請求在執行之前需要等待。 – hakre