AngualrJs清除定時器遇到的坑
angualrJs清除定時器爬坑之路:
今天發(fā)現(xiàn)一個奇怪問題,放在自定義指令里邊的定時器竟然在頁面跳轉(zhuǎn)之后,在另一個頁面這個循環(huán)定時器還在執(zhí)行,這肯定是不行的,會影響系統(tǒng)的性能。
我在angular里邊用原生的方法window.onunload方法竟然不管用,所以只好用angular自己的方法$destroy,這頁面跳轉(zhuǎn),DOM結(jié)構(gòu)發(fā)生變化是都能清除定時器
var timer = setInterval(function(){
$scope.$apply(function(){
//這里是想要定時刷新的邏輯
});
},3000);
$scope.$on('$destroy',function(){
if (timer) {
clearInterval(timer);
timer = null;
}
});
這里說一下,因為我用的是javascript中原生的setTimeout()以及setInterval()函數(shù),所以清除時對應是clearTimeout()和clearInterval(),angular定時器是$timeOut和$interval,所以清除對應是$timeOut.cancel()和$interval.cancel(),
必須一一對應,不一致是不會清除掉的。
總結(jié)
以上所述是小編給大家介紹的AngualrJs清除定時器遇到的坑,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
詳解基于Angular4+ server render(服務(wù)端渲染)開發(fā)教程
本篇文章主要介紹了詳解基于Angular4+ server render(服務(wù)端渲染)開發(fā)教程 ,具有一定的參考價值,有興趣的可以了解一下2017-08-08
詳解angular筆記路由之a(chǎn)ngular-router
本篇文章主要介紹了詳解angular筆記路由之a(chǎn)ngular-router,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
AngularJS中$watch和$timeout的使用示例
這篇文章給大家介紹了AngularJS中$watch和$timeout的使用例子,通過示例代碼相信更能讓大家理解,有需要的朋友們下面來一起看看吧。2016-09-09
angular-ngSanitize模塊-$sanitize服務(wù)詳解
本篇文章主要介紹了angular-ngSanitize模塊-$sanitize服務(wù)詳解 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06
詳解Angular Forms中自定義ngModel綁定值的方式
在Angular應用中有兩種方式來實現(xiàn)表單綁定,但是對于一些特殊的表單控件沒法實現(xiàn),這篇文章主要介紹了詳解Angular Forms中自定義ngModel綁定值的方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12

