AngularJS绑定选项的性能
Performance of AngularJS binding options
我想知道随着复杂度的增加,下面的代码变化对性能的影响。这个问题的部分答案(那些使用属性的)已经在AngularJS中得到了解决:为什么ng-bind在angular中比{{}}更好?但是我想了解使用函数而不是属性的影响。
在我看来,当属性发生变化时,Angular在某种意义上"知道",而函数是不透明的,所以Angular不会知道,而且每次都必须评估。然而,根据上面提到的另一个SO问题,Angular已经在每次都使用直接模板进行评估了。那么,使用函数而不是属性真的会有性能损失吗?每种方法的优缺点是什么?
直接模板属性<div>Hello, {{user.name}}</div>
2 ng-bind-template with property
<div ng-bind-template="Hello, {{user.name}}"</div>
3 ng-bind with property
<div>Hello, <span ng-bind="user.name"></span></div>
4直接模板函数
<div>Hello, {{GetUserName()}}</div>
5 ng-bind-template with function
<div ng-bind-template="Hello, {{GetUserName()}}"</div>
6 ng-bind with function
<div>Hello, <span ng-bind="GetUserName()"></span></div>
3)。
让我们看看。最好的选择是ng-bind='user.name'
,因为这个指令只会监视指定的变量并更新视图,只有在它被更改之后。
1)。直接模板属性 &2). ng-bind-template with property
这两个选项将在每个$digest周期刷新时触发。无需与表达式绑定或仅与表达式绑定,无法通过检查特定值来提高速度。
4), 5)、6)
理论上,所有这些情况将是相同的速度,将比上面的例子慢得多。在每个$digest循环中,它将调用相关的函数,这使得它比仅仅使用表达式还要慢。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 提高JQuery的性能
- 我的单元测试选项是什么
- 如何更改bigquery API中的计费层选项
- 使用Javascript获取所选选项ID
- Selectize.js:如何对整数值的选项进行排序
- 通过js在新选项卡中有条件地打开url
- 按照选项卡索引的顺序循环一个jQuery选择
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 无法在Ionic select中预先选择最后一个选项
- 如何在选项卡上定义属性'的主窗口对象
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 所选选择框中更新选项的性能
- 如何通过选择选项列表来提高动态加载模板的性能或更改方法
- AngularJS绑定选项的性能
- Sencha Touch 2.1:如何创建/销毁选项卡内容以提高性能
- 处理在IE8中选择多个选项-性能问题
- Javascript在非聚焦选项卡中运行时的性能
- 什么'是通过websocket实时数据的性能最高的全JavaScript图表选项
- 选项卡失去焦点时的用户脚本性能