js頁面跳轉到其他頁面上時對定時器的清除


最近再改一個舊項目的bug,需要用到setInterval定時器的功能來每隔幾秒調用一次接口。不過為了不影響性能,在跳轉到其他頁面時需要清除定時器。這個項目是用的jquery寫了,所以不能用react框架那樣有提供生命周期函數來清除定時器。

  一開始想在起始index.js定義一個全局變量如:window.intervalId,  在需要定時器頁面:

window.clearInterval(window.intervalId);
window.intervalId = window.setInterVal(function() {}, 5000);

然后在其他頁面上清除定時器,加上代碼

window.clearInterval(window.intervalId);

不過貌似沒啥效果。

  后面換了一種思路,就跟react組件卸載時觸發生命周期函數類似,我在定時器里面去判斷該頁面的dom元素是否存在來確定是清除定時器還是繼續跑定時器

var intervalId;
window.clearInterval(intervalId);
intervalId = window.setInterval(func, 5000);

func() {
    if(document.getElementById('pageId') === null){
         window.clearInterval(intervalId);
         return;     
   }    
   yourFunc();
}

yourFunc() {
    console.log('yourFunc');
}

 


免責聲明!

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



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