2012-07-15 76 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