2012-07-15 123 views
1

我使用jQuery ajax每2秒刷新一次div。在X秒后停止jQuery ajax刷新

如何在60秒后停止刷新(例如,如果用户不活动)?

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

谢谢!

回答

4

将setInterval句柄分配给一个变量,您将在60秒后使用该变量将其清除。

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

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

完美,谢谢;) – 2012-07-15 16:31:51

0

不那么难。

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

我不确定这是否泄漏。

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); 
+0

您可以加入一个解释,为什么这个解决它 – 2016-01-13 10:49:53

+0

setTimeout函数会中止后,“1000” mseconds Ajax调用,这是1分钟或60秒的持续时间 – Pavy 2016-01-14 08:57:52