如何使用JQuery每隔1秒发送Ajax请求?
发布于 2011-03-15 18:15:31
你可能不想像David已经提到的那样每秒发送一个请求。
因此,使用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发布于 2011-03-15 18:03:00
您可以使用setInterval,但setInterval不是jQuery的一部分:
setInterval(function() {
$.get(...);
}, 1000);发布于 2011-03-15 18:23:42
间隔1秒已经足够小了,您可以在收到对第一个请求的响应之前启动第二个请求。因此,您应该要么在收到前一个请求后启动下一个请求(参见Martin Jespersen的建议),要么将前一个$.ajax请求中的jqXHR保存在一个变量中,并使用它中止前一个请求(请参阅here a)。
https://stackoverflow.com/questions/5310118
复制相似问题