我的AJAX通话需要多长时间?

时间:2012-01-10 08:55:32

标签: javascript jquery

我想做点什么

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

这是什么解决方案?

4 个答案:

答案 0 :(得分: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 :(得分:1)

我不是Javascript专家,但在我看来,你正在创建一个Date对象(如果它类似于Java的Date对象)将日期/时间存储在它创建的位置,然后两次使用相同的日期对象 - 即将开始日期/时间与自身进行比较。

尝试在AJAX回调函数中创建第二个Date对象以捕获结束时间。

答案 2 :(得分:0)

如果您只是对时间感兴趣,而不将其保存在某个地方,则可以使用Google Chrome的开发者控制台。

按F12,转到“网络”标签,执行Ajax通话,您可以看到获取响应需要多长时间的时间表。

答案 3 :(得分:0)

如果您使用firebug调试您的Javascript代码,请查看控制台。它会告诉你ajax调用需要多少毫秒:)

此外,如果您不使用 firebug ,还等什么呢?它非常适合调试,可以为您节省大量时间!