我正在优化我的大型广告Angular App
。正如我发现的那样Google DevTools
,发现问题非常好。当我刚刚开始学习时DevTools
,我对内存泄漏感到非常困惑。
当我来回移动到应用程序中的不同页面时,配置文件堆快照大小一次又一次地增加,因此我认为有些对象没有被GC清除,这就是为什么我的应用程序在一段时间后变慢的原因,因此如何解决这。请帮忙。
笔记
这是我使用DevTools所了解的,如果我错了,请纠正我。欢迎其他建议。
到现在为止我用过的
删除绑定以避免内存泄漏,请使用Scopes $ destroy()方法。
笔记:
Angular中最有可能造成内存泄漏的原因是指令中使用了JQuery。如果您使用JQuery插件在指令中附加事件监听器,则即使Angular删除了自己对DOM的引用后,后者也会保留对DOM的引用,这意味着浏览器永远不会对其进行垃圾收集,在您的记忆中转意为“分离的DOM树”
在您的指令中,请保持解绑定jQuery事件的实践。$ destory方法,可用于在从DOM中删除元素之前清理DOM绑定。
$scope.$on("$destroy",function() {
$( window ).off( "resize.Viewport" );
});
不要忘记在AngularJS中的$ destroy事件中取消$ timeout计时器
$scope.$on("$destroy",function( event ) {
$timeout.cancel( timer );
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句