【问题标题】:How to handle memory leak when using angular.js ngRepeat and Routes?使用angularjs ng Repeat和Routes时如何处理内存泄漏?
【发布时间】:2013-12-06 20:18:13
【问题描述】:

当我将 ngRepeat 与 Route 服务一起使用时,Angular 正在泄漏 DOM 元素。

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

你可以在http://docs.angularjs.org/api/看到同样的问题

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

您会看到 DOM 节点数一直在增长,并且永远不会被完全垃圾回收。

这是一个真正的问题。

我的问题是:现在有人可以解决这个问题吗?有解决办法吗?

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

【问题讨论】:

    标签: javascript angularjs memory-leaks ng-repeat


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      相关资源
      最近更新 更多