测量AJAX调用的处理时间

时间:2011-03-03 06:30:57

标签: javascript

我想衡量处理 AJAX调用需要多长时间。我已经启动并运行但不知道如何在javascript(仅限js)

中编码

2 个答案:

答案 0 :(得分:26)

var start = new Date().getTime();
doAjax({
  success: function() {
    var end = new Date().getTime();
    console.log('milliseconds passed', end - start);
  }
});

在开始执行ajax之前保存时间值,然后在完成后再次执行。然后从另一个中减去一个,然后抽出时间。

答案 1 :(得分:3)

由于javascript使用event queue,因此无法提供准确的时间安排。这意味着你的程序可以像这样执行:

  • 启动AJAX请求
  • 同时处理等待鼠标点击事件/任何其他等待代码行
  • 开始处理AJAX就绪响应

不幸的是,就我所知,没有办法把事件添加到队列中。 Event.timeStamp返回事件从队列中弹出的时间,请参阅此小提琴:http://jsfiddle.net/mSg55/

HTML:

<a href="#">link</a>
<div></div>

使用Javascript:

$(function() {
    var startTime = new Date();
    $('a').click(function(e) {
        var endTime = new Date(e.timeStamp);
        $('div').append((endTime - startTime) + " ");
        //produce some heavy load to block other waiting events
        var q = Math.PI;
        for(var j=0; j<1000000; j++)
        {
            q *= Math.acos(j);
        }
    });

    //fire some events 'simultaneously'
    for(var i=0; i<10; i++) {
        $('a').click();
    }
});