我有一個簡單的jQuery Ajax調用,它從PHP文件(它只是執行mysql查詢並將結果格式化爲列表中的結果)獲取HTML結果。但我遇到的問題是,整個Ajax調用需要大約12秒才能執行(Firebug中的「等待響應」時間爲12.3秒),但是當我在瀏覽器中僅使用相同的URL參數加載PHP頁面時,整個頁面在大約300ms內加載(當我剛剛運行PHP文件調用的SQL查詢時,它需要1ms以下)。使用jQuery接收Ajax結果的延遲
其他一些注意事項可能幫助:
- 阿賈克斯數據的大小是2KB,所以我不認爲它是由於這一點。
- 如果相同的ajax調用在已經運行一次之前完成了相同的參數,則加載數據需要更快的速度(大約4.3s)(即使我已將頁面的Cache-Control設置爲private,無店鋪,無緩存,必重新驗證,檢查後= 0,預檢查= 0)
下面是Ajax調用jQuery的源代碼:
$.ajax({
url: "./lib/hippofunctions.php",
type: "GET",
dataType: "html",
data:
{
"ajax_action" : "get_hippos_for_tags",
"curTags" : currentCheckedTags,
"sortBy" : sortBy,
"params" : checkedFriendsStr,
"location" : location,
"start" : start
},
error: function(request){my_alert("error on ajax_getHipposfortags ")},
success:function(data){
$("#HippoContainer_inner").html(data);
}
})
}
任何想法或者爲什麼要花費這麼長的時間才能收到Ajax數據,以及我如何加快速度?
您是否嘗試過記錄與是HttpFox或類似的談話?特別注意延遲的位置。 – cletus 2009-10-27 15:50:05
是的,它幾乎讓我看到與Firebug相同的東西。唯一的要求就是ajax函數調用的PHP頁面。 – Antony 2009-10-27 17:26:51