2012-01-10 41 views
3

我想要做這樣的事情我的AJAX通話需要多長時間?

var date = new Date(); 
var pretime = date.getTime(); 

$.post( 
    "ajaxfile.php", 
    object, 
    function(data) { 
     var totalTime = date.getTime()-pretime; 
     $("#feed").append("Time: " + totalTime + "<br/>" + pretime + "<br/>" + date.getTime() + "<br/>"); 
    }); 
}); 

也就是說,衡量AjaxCall的持續多久之前,我得到迴應。但從這個回調函數打印是:

Time: 0 
1326184886814 
1326184886814 

這是什麼解決方案?

回答

6

getTime()返回相同的值,因爲您正在重複使用相同的Date()對象。您需要創建一個新的Date對象:如果你在的時候只是有興趣

var date = new Date(); 
var pretime = date.getTime(); 
     $.post("ajaxfile.php", object, function(data){ 
      var date2 = new Date(); 
      var totalTime = date2.getTime()-pretime; 
      $("#feed").append("Time: " + totalTime + "<br/>" + pretime + "<br/>" + date.getTime() + "<br/>"); 
     }); 
}); 
+1

或者只是使用'Date.now()'獲取時間戳。 – 2012-01-10 09:18:50

1

我不是Javascript專家,但在我看來,您創建了一個單一的Date對象(如果它類似於Java的Date對象)將日期/時間存儲在創建點,然後使用同一日期對象兩次 - 即比較開始日期/時間本身。

嘗試在AJAX回調函數內創建第二個Date對象以捕獲結束時間。

0

,沒有什麼地方保存它,你可以使用谷歌Chrome瀏覽器的開發者控制檯。

按F12,進入「網絡」選項卡,執行您的Ajax調用,並且您可以看到獲取響應需要多長時間的時間表。

0

如果您使用螢火蟲調試您的Javascript代碼,請查看控制檯。它會告訴你你的阿賈克斯通話需要多少毫秒:)

另外,如果你不使用firebug,你還在等什麼?調試非常棒,並且可以爲您節省大量時間!