我使用jQuery ajax每2秒刷新一次div。
如何在60秒后停止此刷新(例如,如果用户处于非活动状态)?
setInterval(function() {
$.ajax({
url: "feeds.php",
cache: false
}).done(function( html ) {
$('#feeds').replaceWith('<div id="feeds">'+html+'</div>');
});
}, 2000);
谢谢!
答案 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);