js清除未知定時器的方法


js清除未知定時器的方法

在需要有實時性更新數據的項目中,我們經常會用到很多定時器,我們可能需要一個可以一次性清除所有定時器的方法,並且不通過指定ID一個一個去清除,以下提供兩種解決方案:

 

1.定義全局變量,通過js遍歷清除

這種方法在項目中所使用到的定時器必須賦值記錄到定義好的全局變量中,實現模擬代碼如下:

var pageTimer = {} ; //定義計算器全局變量
//賦值模擬
pageTimer["timer1"] = setInterval(function(){},2000);
pageTimer["timer2"] = setInterval(function(){},2000);
//全部清除方法
for(var each in pageTimer){
    clearInterval(pageTimer[each]);
}
 

2.暴力清除方式

設置一個比較大的數值,循環清除,模擬代碼如下:

for(var i = 1; i < 1000; i++) {
clearInterval(i);
}

分析:實際上暴力清除的方式是不可取的,在不得已情況下才使用,在IE下,定時器返回值在IE下面是8位數字如:248147094,並且起始值不能確定,而Chrome和firefox下是從1開始的個位數字,一般項目還是建議第一種,並且第一種的擴展性也好,比如可以做個方法,清除除了指定定時器之外的所有定時器。

 

引:http://blog.csdn.net/canpark/article/details/8969183


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM