目前在我的网页上,我有一个每 30 秒运行一次功能的计时器:
setInterval("someFunction(userId)", 30000);
这很好用,但问题是如果有 100 名用户打开他们的浏览器(比如他们去吃午饭时),它将无缘无故地轮询我们的系统并增加我们服务器上的负载。
如何在 20 分钟后停止此计时器的运行?
目前在我的网页上,我有一个每 30 秒运行一次功能的计时器:
setInterval("someFunction(userId)", 30000);
这很好用,但问题是如果有 100 名用户打开他们的浏览器(比如他们去吃午饭时),它将无缘无故地轮询我们的系统并增加我们服务器上的负载。
如何在 20 分钟后停止此计时器的运行?
只需将超时设置为 20 分钟即可清除间隔:
var interval = setInterval(function() {
someFunction(userId);
}, 30000);
setTimeout(function() {
clearInterval(interval);
}, 1000 * 60 * 20);
当您调用 时setInterval
,您会得到一个返回值,它是运行间隔的句柄。
所以解决方案是安排另一个关闭,这将阻止这个间隔运行:
var interval = setInterval("someFunction(userId)", 30000);
setTimeout(function(){ clearInterval(interval) }, 20 * 60 * 1000);
将间隔设置为变量。
设置另一个计时器以重置该间隔,或在 20 分钟后为您的轮询脚本设置禁用标志。
试试这个:
var intervalId= setInterval(function(){
someFunction(userId);
}, 30000);
setTimeout(function(){
clearInterval(intervalId);
},20*60*1000);
setInterval
返回一个可以用于clearInterval
稍后传递的 intervalId。