Jay*_*kla 30 memory-leaks google-chrome-devtools angularjs
我正在优化我的大Angular App
.正如我发现一个Google DevTools
非常好的检测问题.正如我刚开始学习的那样DevTools
,我对内存泄漏感到非常困惑.
当我在我的应用程序中向后移动到不同的页面时,配置文件堆快照大小一次又一次地增加,所以我认为有一些对象没有被GC清理,这就是为什么我的应用程序在一段时间后变慢,所以如何解决这个.请帮忙.
注意
这是我使用DevTools所理解的,如果我错了,请纠正我.其他建议是受欢迎的.
直到现在我用过的东西
JQu*_*uru 37
删除绑定以避免内存泄漏,使用Scopes $ destroy()方法.
注意:
Angular中最可能出现内存泄漏的罪魁祸首是你的指令中使用的JQuery.如果你使用JQuery插件在你的指令中附加一个事件监听器,后者即使在Angular删除它自己对DOM的引用之后也会保留对你的DOM的引用,这意味着它永远不会被浏览器垃圾收集,在转向意味着你的记忆中的" 分离的DOM树 "
在你的指令中,保持练习解除jQuery事件的绑定.$ destory方法,可以在从DOM中删除元素之前清除DOM绑定.
$scope.$on("$destroy",function() {
$( window ).off( "resize.Viewport" );
});
Run Code Online (Sandbox Code Playgroud)不要忘记在AngularJS中的$ destroy事件中取消$ timeout定时器
$scope.$on("$destroy",function( event ) {
$timeout.cancel( timer );
});
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
27246 次 |
最近记录: |