如何使用JQuery每1秒发送一次Ajax请求?

时间:2011-03-15 10:01:00

标签: javascript jquery

如何使用JQuery每1秒发送一次Ajax请求?

5 个答案:

答案 0 :(得分:17)

您可能不希望每秒发送请求,正如大卫已经指出的那样。

因此,使用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 :(得分:6)

你可以使用setInterval,但setInterval不是jQuery的一部分:

setInterval(function() {
    $.get(...);
}, 1000);

答案 2 :(得分:1)

间隔1秒足够小,您可能会在收到第一个请求的响应之前启动第二个请求。因此,你应该开始下一个请求 之后接收上一个请求(参见Martin Jespersen的建议)或者保存jqXHR来自变量的先前$.ajax请求并使用它要中止上一个请求(请参阅here示例)

答案 3 :(得分:0)

setInterval(myAjaxCall, 1000);

显然在函数myAjaxCall()中,你将用jquery做所有的ajax。

答案 4 :(得分:0)

如果使用 setInterval 方法,可能会破坏浏览器,因为setInterval不等待ajax函数完成,如果服务器运行缓慢或用户连接速度低,这可能导致运行多个ajax同时请求