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開始的個位數字,一般項目還是建議第一種,並且第一種的擴展性也好,比如可以做個方法,清除除了指定定時器之外的所有定時器。
————————————————
版權聲明:本文爲CSDN博主「塵飛不到」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/canpark/article/details/8969183

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章