Javascript angular js ui网格内存泄漏问题

Javascript angular js ui网格内存泄漏问题,javascript,angularjs,memory-management,memory-leaks,angular-ui-grid,Javascript,Angularjs,Memory Management,Memory Leaks,Angular Ui Grid,我正在开发一个使用AngularJSUI网格的应用程序。但是,当我继续使用我的应用程序时,它会不断增加内存,而不会释放dom对象 我创建了一个示例应用程序,可以在其中重新创建相同的内存泄漏问题。我在一个div中保留了一个按钮(“打开滑块”),单击该按钮,我将动态加载另一个div,其中包含一些数据的UI网格。在另一个div中还有另一个按钮(“Close Slider”),单击该按钮可以隐藏UI网格 以下是我们在IE浏览器上调查问题时观察到的屏幕截图: 因此,如图2所示,当我关闭UI网格div时

我正在开发一个使用AngularJSUI网格的应用程序。但是,当我继续使用我的应用程序时,它会不断增加内存,而不会释放dom对象

我创建了一个示例应用程序,可以在其中重新创建相同的内存泄漏问题。我在一个div中保留了一个按钮(“打开滑块”),单击该按钮,我将动态加载另一个div,其中包含一些数据的UI网格。在另一个div中还有另一个按钮(“Close Slider”),单击该按钮可以隐藏UI网格

以下是我们在IE浏览器上调查问题时观察到的屏幕截图:

因此,如图2所示,当我关闭UI网格div时,内存没有被释放(如开发人员选项>内存选项卡所示)。那么,有没有什么方法可以在卸载UI网格后释放内存,或者有没有其他方法可以移除解除连接的dom对象


您可以在评论部分找到上述应用程序的plunker。

我使用Chrome开发工具尝试了您的plunker评测,我必须说我没有发现内存泄漏的证据

在这里,您可以看到我尝试了多次打开和关闭网格,最后内存被释放

此外,我还尝试了另一种方法,要求Chrome在每次单击之前和之后执行GC,结果是:


在这里,您可以看到,在每个循环之后,当我请求GC时,只有少量内存没有释放,但它似乎不会随着时间的推移而增长。

在angular js中处理内存管理的最佳方法是使用“Controller as”语法


卸载控制器后,使用alias for controller会从内存中释放DOM元素。

不能发布超过2个链接,因此这里是plunker链接:您能在IE浏览器中运行相同的测试吗?与IE相比,Chrome可以很好地处理GC。