Led*_*dzz 6 javascript angularjs
我有一个ng-repeat指令,上面有一些过滤器,每次重复都有大量的DOM.例如:
<ul>
<li ng-repeat='task in tasks'>
<!--Some DOM with many bindings-->
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我想稍微提高性能,但我希望保持双向绑定.一种方法是通过以下方式插入曲目:
ng-repeat='task in tasks track by task.id'
Run Code Online (Sandbox Code Playgroud)
另一种方法是在绑定中使用一次本机绑定:
{{::task.name}}
Run Code Online (Sandbox Code Playgroud)
显然我不能同时使用它们,因为在这种情况下,双向绑定将不起作用.如何衡量DOM重建速度?哪种方式更有效?
这些不是相互排斥的结构,两者都有不同的用途.
使用track by简单地允许Angular在添加或删除项目时更好地管理DOM.默认情况下,它使用整个对象的哈希值,与简单的原子值相比,它可能比较慢且效率低.
但是,使用一种时间绑定语法只会减少应用程序中的总监视数.这使得应用程序在执行更新时更具响应性,因为它有更少的内容需要关注.