不要忘记监听$destroy事件来清除timer
2014-01-20 18:29
253 查看
angularjs会广播一个$destroy的事件在销毁scope和其父对象被删除时。
在做一些清除的任务或资源的时候,监听这个事件就变得非常的关键,否则就可能消耗内存和CUP.
下面是一个有问题的情况:
下面是正确的情况:
关注微信公众号:前端开发知识
在做一些清除的任务或资源的时候,监听这个事件就变得非常的关键,否则就可能消耗内存和CUP.
下面是一个有问题的情况:
module.controller("TestController", function($scope, $timeout) { var onTimeout = function() { $scope.value += 1; $timeout(onTimeout, 1000); }; $timeout(onTimeout, 1000); $scope.value = 0; });
下面是正确的情况:
module.controller("TestController", function($scope, $timeout) { var onTimeout = function() { $scope.value += 1; timer = $timeout(onTimeout, 1000); }; var timer = $timeout(onTimeout, 1000); $scope.value = 0; $scope.$on("$destroy", function() { if (timer) { $timeout.cancel(timer); } }); });
关注微信公众号:前端开发知识
相关文章推荐
- JS,JQ及时监听input值的变化,MUI的input搜索框里的清除按钮的点击监听事件
- cocos2d-js中监听帧事件时不要忘了this
- js监听浏览器后退事件
- 监听回车事件
- 对layout布局事件进行监听, 确保layout已经布局完成, 从而可以成功获取到需要的布局长宽数据
- 使用JS监听键盘按下事件(keydown event)
- Android 仿IOS边缘滑动事件监听
- 《WF in 24 Hours》读书笔记 - Hour 3(1) - Workflow:添加宿主和事件监听
- Android 设置软键盘搜索键以及监听搜索键点击事件
- android监听文件和目录的创建删除移动等事件
- android 事件监听
- jquery.hotkeys监听键盘按下事件keydown插件
- Vue------第四天(事件处理:事件监听、修饰符等;表单输入绑定:基础用法、值绑定)
- 标准DOM的事件监听
- 【Android SDK开发】各种Android Dialog创建及其监听事件实现
- android EditText控件事件监听
- AndoridGridView 自定义适配器 监听事件的使用,实现更换头像功能
- Android animation(四.监听事件)
- 夺命雷公狗---javascript NO:10 解决事件监听兼容性问题和移除事件
- 郭克华手机编程教学视频----我的练习源码(8)List的事件监听