AngularJS:视图中的侦听器数量太大,视图加载时间长

时间:2016-06-03 08:31:24

标签: javascript angularjs performance memory-leaks

第二次加入视图时,我遇到了Angular视图问题。

输入:

  • 查看加载1500个项目的列表
  • ng-repeat和过滤器
  • 中显示的所有1500项内容
  • 视图中未使用$watch

问题描述:

  1. 第一次加入视图时,它加载正常并且工作正常没有 表现问题。
  2. 在步骤1之后离开视图时需要5秒-10秒
  3. 在第2步之后第二次加入视图时,花费30秒和99%的时间用于编写脚本。在分析该步骤之后,它显示> 20000名听众。
  4. 问题:

    1. 有关步骤(3)中可能导致性能问题的建议吗?
    2. 有兴趣了解使用ng-repeat显示多少数据?
    3. enter image description here

1 个答案:

答案 0 :(得分:0)

没有任何代码,我们无法给出明确的答案,但问题可能在于您渲染了这么多项目。

每当你ng-bind创建一个$watch时,由于大数据集(可能有多个绑定),你的观察者将会非常高。为了克服这个问题,你可以使用虚拟化的东西(而不是渲染所有东西,只渲染适合屏幕的东西),例如ui-grid