21

我的应用程序中存在严重的内存泄漏,但我还没有找到原因,这里是背景。

  • 我正在使用 AngularJS + JQuery(插件)
  • 许多听众的约束如下:

    $(element).on("keyup", function() {});

所以问题是

我是否需要通过以下方式在指令中取消绑定这些侦听器?

scope.$on("$destroy", function() {
    $(element).off();
}); 

顺便说一句,您通常如何找出 Web 应用程序中的内存泄漏?我使用 chrome 的配置文件(请参阅此处的Profiling memory performance),但我无法追踪到内存泄漏的代码。你有什么建议吗?

非常感谢!

4

1 回答 1

14

范围销毁的 Angular 文档暗示您确实需要删除 DOM 事件。

http://docs.angularjs.org/api/ng.$ro​​otScope.Scope#$destroy

请注意,在 AngularJS 中,还有一个 $destroy jQuery 事件,可用于在从 DOM 中删除元素之前清理 DOM 绑定。

于 2013-09-10T15:53:26.663 回答