修复Angular内存泄漏
Fixing Angular memory leaks
我正在尝试优化我的Angular应用程序,并浏览了几个网站,我也发现了这种做法:
var cleanup = $scope.$on('someEvent', function() {
$scope.refresh();
});
$scope.$on('$destroy', function() {
cleanup();
});
由于我的控制器中有几个$scope.$on
,我想知道这样使用它是否正确:
var first = $scope.$on('firstEvent', function() {
$scope.something1();
});
var second = $scope.$on('secondEvent', function() {
$scope.something2();
});
var third = $scope.$on('thirdEvent', function() {
$scope.something3();
});
$scope.$on('$destroy', function() {
first();
second();
third();
});
这是否便于实施和纠正?
正如引用的文章所说,
如果你忘记了,Angular应该清理它,但建议总是自己做。
围绕预期的框架行为制定保障措施过于谨慎,很难被称为良好做法。
而jQuery/jqLite(element.on
)和第三方事件侦听器可能会导致内存泄漏,应在作用域$destroy
或元素$destroy
事件上进行清理。
相关文章:
- 重复应用 d3 转换导致的内存泄漏
- IE7中的blockUI插件内存泄漏25kb
- Javascript闭包-如何防止内存泄漏
- jQuery Draggable:内存泄漏
- "检测到可能的EventEmitter内存泄漏”;使用Gulp+Watchify+Factor捆绑包
- 在Dojo类中递归调用setTimeout时是否存在内存泄漏
- 是内存泄漏
- 将处理程序留在img.onload上是内存泄漏
- 具有并发sse连接的node.js内存泄漏
- 简单对象的Javascript内存泄漏
- WeakMap是否会将我从父/子关系的内存泄漏中拯救出来
- Javascript绘制画布内存泄漏
- 为什么我的svg节点在IE中泄漏内存
- AngularJS指令包装器与Kendo一起泄漏内存
- 经过几次清理尝试后,主干仍在泄漏内存
- 这个js代码如何泄漏内存
- 未处理的postMessage是否泄漏内存
- 动态创建和销毁三.js场景,而不会泄漏内存
- 我的PyV8上下文泄漏内存
- 为什么我的数字时钟功能泄漏内存