AngularJS'ng-filter'在〜1000个元素的数组上非常慢

AngularJS'ng-filter'在〜1000个元素的数组上非常慢,第1张

AngularJS'ng-filter'在〜1000个元素的数组上非常慢

筛选器方法的主要问题在于,每次更改dom都会对其进行 *** 作,因此,筛选器的运行速度不是缓慢,而是后果。一种替代方法是使用类似:

ng-show="([item] | filter:searchFilter).length > 0"

在重复元素上。

通过@OverZealous提供一些代码,您可以使用以下内容比较行为:

  • 过滤器:http://jsbin.com/fuwadanu/1/
  • ng-show:http : //jsbin.com/xajehulo/1/

更新 :Angular v1.2附带了

track by
语法。这也有助于解决此类问题。如果元素具有一些唯一属性,则可以使用:

ng-repeat="item in items | filter:searchFilter track by item.id"

item.id
所有项目中,哪里必须是唯一的。与
track by
只有那些以DOM元素将被移除这已经不再是在最后的名单,其他人将被 铭记
。而没有
track by
整个列表的每次都会 重绘 。简而言之:更少的dom *** 作=更快的重绘。

  • 跟踪者:http : //jsbin.com/dufasego/1/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5642110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存