使用angularjs ng Repeat和Routes时如何处理内存泄漏?

时间:2013-11-22 03:39:57

标签: javascript angularjs memory-leaks ng-repeat

当我在路由服务中使用ngRepeat时,Angular正在泄漏DOM元素。

我们的应用程序有一个包含搜索结果的表格。当用户单击分页控件上的下一个按钮时,应用程序会更改路径。所以http://website/results/1将成为http://website/results/2这导致angular在ngRepeat指令上调用compile,这会清除它的缓存。缓存中的DOM元素和$ scope对象都存在并且泄漏。

您可以在http://docs.angularjs.org/api/

上看到同样的问题

导航到上面的站点,打开开发工具并启动时间轴。然后开始单击左侧的导航。从顶部开始并一直点击,直到你到达导航的底部然后再返回。

您将看到DOM节点数量不断增长,永远不会被完全收集。

这是一个真正的问题。

我的问题是:现在有人如何解决这个问题?有工作吗?

另外,作为旁注但仍然相关的是,angular似乎泄漏了包装内联表达式的每个元素。 {{objectOnTheScope}}

1 个答案:

答案 0 :(得分:1)

它可能与嵌套的ng-repeat内存泄漏有关。 见https://github.com/angular/angular.js/issues/1313#issuecomment-10378451