2009-10-27 56 views
1

我有一個簡單的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數據,以及我如何加快速度?

+0

您是否嘗試過記錄與是HttpFox或類似的談話?特別注意延遲的位置。 – cletus 2009-10-27 15:50:05

+0

是的,它幾乎讓我看到與Firebug相同的東西。唯一的要求就是ajax函數調用的PHP頁面。 – Antony 2009-10-27 17:26:51

回答

0

我會多提建議更新這個,但現在做的成功的一些功能性能測試:

success:function(data){ 
console.time("data render"); 
$("#HippoContainer_inner").html(data); 
console.timeEnd("data render"); 
} 
+0

感謝您的建議。數據渲染計時器對於成功功能只有18ms – Antony 2009-10-27 16:34:01