相关疑难解决方法(0)

AngularJS - $ destroy是否删除事件监听器?

https://docs.angularjs.org/guide/directive

通过侦听此事件,您可以删除可能导致内存泄漏的事件侦听器.注册到范围和元素的监听器在销毁时会自动清理,但如果您在服务上注册了监听器,或者在未删除的DOM节点上注册了监听器,则必须自行清理或者你冒着引入内存泄漏的风险.

最佳实践:指令应该自行清理.您可以使用element.on('$ destroy',...)或范围.$ on('$ destroy',...)来删除指令时运行清理函数.

题:

element.on "click", (event) ->我的指令里面有一个:

  1. 当指令被销毁时,是否有任何内存引用element.on以防止它被垃圾收集?
  2. Angular文档声明我应该使用处理程序来删除$destroy发出的事件上的事件侦听器.我的印象是destroy()删除了事件监听器,是不是这样?

memory-leaks angularjs

197
推荐指数
1
解决办法
11万
查看次数

如何减少/消除Angular应用程序中的内存泄漏

我正在优化我的大Angular App.正如我发现一个Google DevTools非常好的检测问题.正如我刚开始学习的那样DevTools,我对内存泄漏感到非常困惑.

当我在我的应用程序中向后移动到不同的页面时,配置文件堆快照大小一次又一次地增加,所以我认为有一些对象没有被GC清理,这就是为什么我的应用程序在一段时间后变慢,所以如何解决这个.请帮忙.

注意

这是我使用DevTools所理解的,如果我错了,请纠正我.其他建议是受欢迎的.

直到现在我用过的东西

  1. AngularOnce指令,可在需要时减少监视.
  2. QuickList指令用快速重复取代ng-repeat.
  3. InView指令,处理大型列表,所以我删除不在视口中的DOM.
  4. 来自ngInfiniteScroll指令的延迟加载方法.

memory-leaks google-chrome-devtools angularjs

30
推荐指数
1
解决办法
3万
查看次数