Javascript 计算执行AJAX请求需要多少时间
我试图计算执行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
$(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做了一些改进,这在以前是不存在的