我希望在后台使用jQuery作为“心跳”进行AJAX调用,以便我的Web应用程序可以检查新数据。例如,每10秒。
我在其他帖子上看到,可以使用setInterval()调用每X毫秒进行一次调用的方法。
setInterval()
但是,如果我的AJAX通话时间超过10秒怎么办?我仍然希望它完成上一个请求,并且当正在进行中的一个请求时,我不希望发出另一个呼叫。这可能导致相同的信息两次被放置到页面上!
当我的方法等待原始AJAX调用完成时,而不是仅“每10秒”完成时,该方法的实现方式是什么?
尝试从您的ajax成功函数设置另一个超时:
function poll() { setTimeout( function() { $.ajax(.......).success( function(data) { poll(); //call your function again after successfully calling the first time. }); }, 10000); }