在X秒后停止jQuery ajax刷新

时间:2012-07-15 16:25:43

标签: jquery ajax refresh setinterval

我使用jQuery ajax每2秒刷新一次div。

如何在60秒后停止此刷新(例如,如果用户处于非活动状态)?

setInterval(function() {
  $.ajax({
    url: "feeds.php",
    cache: false
  }).done(function( html ) {
  $('#feeds').replaceWith('<div id="feeds">'+html+'</div>');
   });
}, 2000);

谢谢!

3 个答案:

答案 0 :(得分:4)

将setInterval句柄分配给变量,您将在60秒后将其清除。

var interval = setInterval(function(){ ... }, 2000);

// start a 60 second timer
setTimeout(function(){ window.clearInterval(interval); }, 60000);

答案 1 :(得分:0)

不是那么难。

var myInterval = setInterval(function(){},2000);
setTimeout(function() { clearInterval( myInterval ); }

我不确定这是否有泄漏。

答案 2 :(得分:0)

//store the ajax call into a variable
var chr =  $.ajax({ .....}

//use setTimeout to invoke its abort() method after 1000 ms (1 second)
setTimeout(function(){
  chr.abort()
}, 1000);