【发布时间】:2015-04-30 00:42:14
【问题描述】:
我遇到了一些普通侦听器正在关闭范围的情况,例如:
$(window).on('click', function() {
$scope.doSomething();
})
此侦听器未正确解除绑定,因此此 $scope 从未被垃圾回收。
由于它是一个相当大的 Angular 应用程序,我怀疑这可能发生在许多其他地方。
有没有办法让所有范围都在内存中?从 DOM 元素中获取它们是不够的,因为这正是我想要解决的情况:元素已被销毁,范围的 $$destroyed 属性设置为 true,但它仍在内存中。
如果没有 Angular 方法来获取它,而我只剩下标准的 Javascript 分析,请告诉我,我会删除该问题(因为它可能与标准内存泄漏检测方法重复)。
【问题讨论】:
-
扮演魔鬼的拥护者 我想说真正的问题不是内存泄漏,而是仍然处于活动状态的事件处理程序。内存泄漏只是一个副作用。我想这一切都归结为你的最后一句话。不过,我不会删除这个问题。
标签: javascript angularjs memory-leaks