计算执行AJAX请求所需的时间

时间:2010-11-24 21:32:29

标签: javascript ajax timer

我试图计算执行AJAX请求需要多长时间,到目前为止点击按钮我有这段代码:

$(document).ready(function() {
    $('#start').click(function() {
        start_timer();
        var record = $.ajax({url: "ajax.php?getSensor="+devid, async: false }).responseText;
        $("textarea#recordTextbox").val($('textarea#recordTextbox').val()+record+"\n");
        stoptimer();
    }); 
});

我的计时器功能如下:

function start_timer() {
     display();
}
function stoptimer() {
  clearTimeout(timer);
  timer = 0;
}
function display(){
  if (millisec>=9){
     millisec=0
     seconds+=1
  }
  else
     millisec+=1
     $("#time").html(seconds + "." + millisec);
     timer = setTimeout("display()",100);
  }

AJAX请求发送正确,但定时器每次读取0.1秒,我知道它需要更长时间,因为页面挂起至少3秒。由于某种原因,计时器在关闭它的AJAX协议时不会运行。

任何建议都会有所帮助,谢谢!

4 个答案:

答案 0 :(得分:3)

您可以使用异步请求更轻松地执行此操作:

$(document).ready(function() {
    $('#start').click(function() {
        start_timer();
        $.ajax({url: "ajax.php?getSensor="+devid, async: false, success: function(data){ 
            $("textarea#recordTextbox").val($('textarea#recordTextbox').val()+data+"\n");
            stoptimer(); 
        }});
    }); 
});

答案 1 :(得分:1)

如果您这样做是为了帮助开发,请使用firebug

答案 2 :(得分:1)

我无法让这个计时器工作,所以我使用了Date()。getTime(),如下所示:

    var start_time = new Date().getTime();       
    $.ajax({url: "ajax.php?getSensor="+devid, async: false, success: function(data){ 
        $("textarea#recordTextbox").val($('textarea#recordTextbox').val()+data+"\n");
        request_time = new Date().getTime() - start_time; 
    }});
    $("#time").html(request_time/1000);

答案 3 :(得分:0)

只需运行YSlow。

对于确定页面加载和AJAX请求有什么问题的通用方法,请使用YSlow addon for Firefox

它会向您展示您从未梦寐以求的东西,这会降低您的代码速度。