AngualrJs清除定时器遇到的坑


Posted in Javascript onOctober 13, 2017

angualrJs清除定时器爬坑之路:

今天发现一个奇怪问题,放在自定义指令里边的定时器竟然在页面跳转之后,在另一个页面这个循环定时器还在执行,这肯定是不行的,会影响系统的性能。

我在angular里边用原生的方法window.onunload方法竟然不管用,所以只好用angular自己的方法$destroy,这页面跳转,DOM结构发生变化是都能清除定时器

var timer = setInterval(function(){
          $scope.$apply(function(){
            //这里是想要定时刷新的逻辑
          });
        },3000);
        $scope.$on('$destroy',function(){
          if (timer) {
            clearInterval(timer);
            timer = null;
          }
        });

 这里说一下,因为我用的是javascript中原生的setTimeout()以及setInterval()函数,所以清除时对应是clearTimeout()clearInterval(),angular定时器是$timeOut$interval,所以清除对应是$timeOut.cancel()$interval.cancel(),

必须一一对应,不一致是不会清除掉的。

总结

以上所述是小编给大家介绍的AngualrJs清除定时器遇到的坑,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
js实现当前输入框高亮显示的方法
Aug 19 Javascript
简介BootStrap model弹出框的使用
Apr 27 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
Nov 22 Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
May 07 Javascript
vue.js声明式渲染和条件与循环基础知识
Jul 31 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
Apr 17 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
May 02 Javascript
vue-cli3 引入 font-awesome的操作
Aug 11 Javascript
token 机制和实现方式
Dec 15 Javascript
如何使用原生Js实现随机点名详解
Jan 06 Javascript
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
React Native中Navigator的使用方法示例
Oct 13 #Javascript
React Native中TabBarIOS的简单使用方法示例
Oct 13 #Javascript
ReactJS实现表单的单选多选和反选的示例
Oct 13 #Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
Oct 13 #Javascript
捕获未处理的Promise错误方法
Oct 13 #Javascript
解决ie img标签内存泄漏的问题
Oct 13 #Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 #jQuery
You might like
非常不错的MySQL优化的8条经验
2008/03/24 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
python常见排序算法基础教程
2017/04/13 Python
python构建深度神经网络(DNN)
2018/03/10 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
详解python中的index函数用法
2019/08/06 Python
python sqlite的Row对象操作示例
2019/09/11 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
八一建军节感言
2014/02/28 职场文书
核心价值观演讲稿
2014/05/13 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
Pandas 稀疏数据结构的实现
2021/07/25 Python
Python集合的基础操作
2021/11/01 Python
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA