目前在我的網頁後,停止我有一個運行的功能,每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