如何使用JQuery每1秒发送一次Ajax请求?
如何使用JQuery每隔1秒发送一次Ajax请求?在功能myAjaxCall显然如何使用JQuery每1秒发送一次Ajax请求?
setInterval(function() {
$.get(...);
}, 1000);
可以使用的setInterval,但setInterval的北京时间的jQuery不是一部分。
setInterval(myAjaxCall, 1000);
(),你会做你的东西阿贾克斯与jQuery:
10000都是10秒 – felixsigl 2011-03-15 10:06:13
哎唷,刚刚编辑! – 2011-03-15 10:07:12
您可能不想每隔一秒发送一次请求,因为大卫已经注意到了。
因此,使用setInterval
是一个坏主意。
而是考虑做这样的事情:
function doAjax() {
$.ajax({
...
complete: function() {
setTimeout(doAjax,1000); //now that the request is complete, do it again in 1 second
}
...
});
}
doAjax(); // initial call will start rigth away, every subsequent call will happen 1 second after we get a response
间隔1秒足够小,它可以是你收到响应第一请求之前,你会开始第二次请求。因此,您应该启动下一个请求接收前一个(见马丁耶斯佩森的建议)后或从以前$.ajax
申请保存jqXHR
在一个变量,并用它来中止以前的要求(见here为例)
如果使用的setInterval方法,你可以粉碎浏览器,因为setInterval的不是等着AJAX功能来完成,如果服务器运行缓慢或用户的连接速度慢,这可能是导致运行在多个Ajax请求同样的tme
这是很有可能的,你不能。请求完成时间超过1秒的情况非常普遍。所以如果你试图这样做,你几乎肯定会得到一长串请求,等待一个可用的连接,并且它们以不同的顺序返回(创建一个竞争条件)。您可能想要将一个请求作为回调的一部分发送回前一个请求。 – Quentin 2011-03-15 10:10:51