目前在我的网页后,停止我有一个运行的功能,每30秒计时器:如何设置的时间间隔,但随后20分钟
setInterval("someFunction(userId)", 30000);
这工作得很好,但问题是,如果100的用户将他们的浏览器打开(比如说他们去吃午餐时),它会调查我们的系统并无故增加我们服务器上的负载。
如何在20分钟后停止运行此计时器?
目前在我的网页后,停止我有一个运行的功能,每30秒计时器:如何设置的时间间隔,但随后20分钟
setInterval("someFunction(userId)", 30000);
这工作得很好,但问题是,如果100的用户将他们的浏览器打开(比如说他们去吃午餐时),它会调查我们的系统并无故增加我们服务器上的负载。
如何在20分钟后停止运行此计时器?
20分钟就超时设置为清除间隔:
var interval = setInterval(function() {
someFunction(userId);
}, 30000);
setTimeout(function() {
clearInterval(interval);
}, 1000 * 60 * 20);
我建议在代码中加入事件监听器,否则代码会在20分钟后停止运行,即使用户正在使用该站点。 –
设置你作为一个变量区间。
设置另一个定时器来重置该时间间隔,或者在20分钟后为您的轮询脚本设置一个禁用标志。
当您拨打setInterval
时,会得到一个返回的值,它是运行时间间隔的句柄。
所以解决的办法是安排另一个关闭,这将防止运行此区间:
var interval = setInterval("someFunction(userId)", 30000);
setTimeout(function(){ clearInterval(interval) }, 20 * 60 * 1000);
试试这个:
var intervalId= setInterval(function(){
someFunction(userId);
}, 30000);
setTimeout(function(){
clearInterval(intervalId);
},20*60*1000);
setInterval
返回intervalId,你可以用它来传递稍后再到clearInterval
。
将函数传递给'setInterval',而不是字符串。 – Quentin
不要使用字符串作为'setInterval'或'setTimeout'的第一个参数 – Andreas
@Quentin字符串有什么问题?现在工作正常吗? – loyalflow