Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计算执行AJAX请求需要多少时间_Javascript_Ajax_Timer - Fatal编程技术网

Javascript 计算执行AJAX请求需要多少时间

Javascript 计算执行AJAX请求需要多少时间,javascript,ajax,timer,Javascript,Ajax,Timer,我试图计算执行AJAX请求需要多长时间,当单击按钮时,我得到以下代码: $(document).ready(function() { $('#start').click(function() { start_timer(); var record = $.ajax({url: "ajax.php?getSensor="+devid, async: false }).responseText; $("textarea#recordTextbo

我试图计算执行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);
  }
    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);
AJAX请求被正确发送,但计时器每次读取0.1秒,我知道它需要更长的时间,因为页面至少会挂起3秒。出于某种原因,计时器在停止执行AJAX交易时不会运行


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

通过异步请求,您可以更轻松地执行此操作,例如:

$(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(); 
        }});
    }); 
});

通过异步请求,您可以更轻松地执行此操作,如下所示:

$(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(); 
        }});
    }); 
});

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

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

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

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);
  }
    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);

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

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);
  }
    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);

只需在上面运行YSlow即可。

对于确定页面加载和AJAX请求有何问题的通用方法,请使用


它将向您展示一些您做梦也想不到的东西,这些东西会降低代码的速度。

只需在上面运行YSlow即可。

对于确定页面加载和AJAX请求有何问题的通用方法,请使用


它会向你展示一些你做梦也想不到的东西,这些东西会让你的代码慢下来。

我知道这是一个你想要完成的工作,但是在谷歌Chrome中,你可以通过按下
CTRL-SHIFT-J
并查看控制台来查看响应时间。或者你可以使用FireFox或Chrome的FireBug插件。我知道这是一个解决方案,你可以在Google Chrome中通过按下
CTRL-SHIFT-J
并查看控制台来查看响应时间。或者你可以使用FireFox或Chrome的FireBug插件。是的,OP帖子中的计时器不起作用的原因是因为它没有在AJAX回调中停止。所以出于某种原因,它仍然显示。每次Chrome的开发工具显示每个请求约2.5秒时,它都显示1秒,可能是我的计时器代码出错了?另外,您说过我可以使用异步请求,但代码中仍然有async:false,这是故意的吗?抱歉,这有点陌生谢谢你的代码,但这不起作用:/当我完全注释掉stoptimer时,计时器会在0.1秒停止,直到ajax请求完成,然后继续上升是,OP帖子中的计时器不起作用的原因是因为它没有在AJAX回调中停止。因此,出于某种原因,它仍然显示。每次chrome的开发工具显示每个请求2.5秒时,都显示1秒,可能是我的计时器代码出错了?另外,您说过我可以使用异步请求,但代码中仍然有async:false,这是故意的吗?抱歉,这有点陌生谢谢你的代码,但这不起作用:/当我完全注释掉stoptimer时,计时器会在0.1秒停止,直到ajax请求完成,然后继续上升。这是针对我正在制作的web应用程序,但感谢你的建议,firebug在webkit(safari/chrome)的“资源”选项卡上非常有用inspector也能工作。是的,我看到他们对如何动态更改css做了一些改进,这在以前是没有的。这是我正在制作的一个web应用程序,但是感谢您的建议,firebug非常有用,webkit的资源选项卡(safari/chrome)inspector也能工作。是的,我看到他们对如何动态修改css做了一些改进,这在以前是不存在的