我试图计算执行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协议时不会运行。
任何建议都会有所帮助,谢谢!
答案 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)