AngularJS的渲染速度非常慢,大约有2000个元素?
这里是小提琴:http://jsfiddle.net/D5h7H/7/
它呈现以下内容:
<div ng-repeat="group in Model.Groups">
<span>{{group.Name}}</span>
<div ng-repeat="filter in group.Filters">
<input type="checkbox" ng-model="filter.enabled">{{filter.Name}}
<select ng-disabled="!filter.enabled">
<option ng-repeat="value in filter.Values">{{value}}</option>
</select>
</div>
</div>
这是一个过滤器的列表,从服务器加载到json中,然后呈现给用户(在一个例子中,json就是在Fiddle中生成的)。 目前有6组30个滤波器,每个滤波器有15个选项元件。
在Firefox中,现在需要大约2秒来重新绘制用户界面。
对于角度js这个时间好吗? 有什么我做错了,造成2秒。 渲染(因为2000个元素对我来说看起来不是很大,但是2秒肯定很大)?
在AngularJS 1.3+中,内置了One-time binding
:
一次性绑定表达式的主要目的是提供一种方法来创建一个绑定,一旦绑定稳定,就会取消注册并释放资源。 减少正在观看的表达式的数量使摘要循环更快,并允许同时显示更多信息。
为了进行一次性绑定,将prepend ::
绑定到绑定值:
<div>{{::name}}</div>
另请参阅相关讨论:
如果在绑定数据后不需要更新UI,则应该查看绑定。 bindonce也可以等到一个对象被加载后再进行绑定。 它将为您节省大量时间,并在正确使用时显着降低您的$watch()
es。
链接地址: http://www.djcxy.com/p/23133.html
上一篇: AngularJS really slow at rendering with about 2000 elements?