我有角度 ng-repeat 指令的问题。目前我在一些项目上工作,从 API 我得到一个项目列表(有时可能是 1k 个项目),这个列表应该每 5 秒刷新一次(它正在监视相关项目)。
当列表长度稍大时,网站在重新渲染 DOM 时可能会“变慢”。结果表明,角度重新生成了整个 DOM(但 95% 的项目是相同的!)
一种可能的方法是将“track by”表达式设置为例如 item.id。但是这里出现了另一个问题,例如,当其他用户更改描述时,我还希望重新生成项目。由于 track by is expression to item.id 更改 item.description 并没有更新 DOM 中的项目。
有办法通过多个属性进行跟踪吗?也许一些功能?或者也许可以通过“手”进行比较?
任何想法,代码示例我将不胜感激:)
更新
当我将 track by 设置为 item.id 时,我发现 angular 并没有为项目重新创建 html,只是更新已创建元素中的值,它似乎“更快”,然后删除和创建。以前我虽然有点不同。
使固定
对于那些在ng-repeat USE track by item.id中寻找超过 1k 个项目的更好性能的人,它将提高您的性能;)