如何设置间隔,但在20分钟后停止

时间:2012-10-17 16:11:29

标签: javascript jquery

目前在我的网页上,我有一个每30秒运行一次功能的计时器:

setInterval("someFunction(userId)", 30000);   

这很好用,但问题是如果百分之百的用户打开浏览器(例如他们去吃午餐时),它会轮询我们的系统并无缘无故地增加我们服务器的负载。

如何在20分钟后停止此计时器的运行?

4 个答案:

答案 0 :(得分:11)

设置超时20分钟以清除间隔:

var interval = setInterval(function() {
    someFunction(userId);
}, 30000);

setTimeout(function() {
    clearInterval(interval);
}, 1000 * 60 * 20);

答案 1 :(得分:2)

当您致电setInterval时,您会收到一个返回值,该值是运行间隔的句柄。

因此,解决方案是安排另一个关闭,这将阻止此间隔运行:

var interval = setInterval("someFunction(userId)", 30000);  
setTimeout(function(){ clearInterval(interval) }, 20 * 60 * 1000);

答案 2 :(得分:0)

将您的间隔设置为变量。

设置另一个计时器以重置该间隔,或者在20分钟后为您的轮询脚本设置禁用标志。

答案 3 :(得分:0)

试试这个:

var intervalId= setInterval(function(){
   someFunction(userId);
 }, 30000); 

setTimeout(function(){
   clearInterval(intervalId);
},20*60*1000);

setInterval会返回您可以稍后传递给clearInterval的intervalId。