Javascript 测量AJAX调用的处理时间

Javascript 测量AJAX调用的处理时间,javascript,Javascript,我想测量处理AJAX调用需要多长时间。我已经安装并运行了它,但不知道如何用javascript编写代码(仅限js) 在开始使用ajax之前,请保存一个时间值,然后在完成后再次使用。然后从一个表单中减去另一个表单,得到您的时间。这不会给出准确的时间,因为javascript使用。这意味着您的程序可能会这样执行: 启动AJAX请求 同时处理等待的鼠标单击事件/任何其他等待的代码行 开始处理AJAX就绪响应 不幸的是,据我所知,无法获取事件添加到队列的时间。Event.timeStamp返回事件从

我想测量处理AJAX调用需要多长时间。我已经安装并运行了它,但不知道如何用javascript编写代码(仅限js)


在开始使用ajax之前,请保存一个时间值,然后在完成后再次使用。然后从一个表单中减去另一个表单,得到您的时间。

这不会给出准确的时间,因为javascript使用。这意味着您的程序可能会这样执行:

  • 启动AJAX请求
  • 同时处理等待的鼠标单击事件/任何其他等待的代码行
  • 开始处理AJAX就绪响应
不幸的是,据我所知,无法获取事件添加到队列的时间。Event.timeStamp返回事件从队列中弹出的时间,请参阅此fiddle:

Html:


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();
    }
});
$(函数(){
var startTime=新日期();
$('a')。单击(函数(e){
var endTime=新日期(如时间戳);
$('div').append((endTime-startTime)+”);
//产生一些重负载以阻止其他等待事件
var q=Math.PI;

对于(var j=0;jI),我发现使用这种方法,响应时间是不同的,特别是在站点还没有缓存的情况下。@Alex,你知道为什么这与Firebug中的响应时间会有30-60毫秒的不同吗?谢谢,因为不管你使用的是什么ajax库(比如jQuery)在收到响应后但在执行回调之前运行代码。Firebug可能只测量HTTP计时。差异可能只是库开销。这应该是对@AlexWayne答案的评论吗?
<a href="#">link</a>
<div></div>
$(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();
    }
});