The*_*iot 6 javascript performance angularjs
假设我必须存储客户信息,并管理我将$scope在这里使用的双向绑定.所以我的疑问是,哪种方法更好?
$scope.firstname = "foo";
$scope.lastname = "bar";
$scope.cellno = "1234567890";
$scope.email = "foobar@example.com";
Run Code Online (Sandbox Code Playgroud)
要么
$scope.customerDetailsObj = {};
$scope.customerDetailsObj.firstname = "foo";
$scope.customerDetailsObj.lastname = "bar";
$scope.customerDetailsObj.cellno = "1234567890";
$scope.customerDetailsObj.email = "foobar@example.com";`
Run Code Online (Sandbox Code Playgroud)
我一直在想这个,因为我有一个很大的角度应用程序,有时范围观察者数量超过1500.我正在使用镀铬扩展来看看观察者的数量.
请分享您的观点.谢谢.
在我看来,按照angularjs 指南,第一种方法(直接绑定到属性)会更有效。指南摘录:
脏检查可以通过三种策略来完成:通过引用、通过集合内容和通过值。这些策略的不同之处在于它们检测到的变化类型及其性能特征。
- 通过引用监视 (scope.$watch (watchExpression, Listener)) 会在监视表达式返回的整个值切换为新值时检测到更改。如果该值是数组或对象,则不会检测到其内部的更改。这是最有效的策略。
- 监视集合内容 (scope.$watchCollection (watchExpression,listener)) 检测数组或对象内部发生的更改:添加、删除或重新排序项目时。检测是浅层的 - 它不会触及嵌套集合。观看集合内容比通过引用观看更昂贵,因为需要维护集合内容的副本。然而,该策略试图最大限度地减少所需的复制量。
- 按值监视 (scope.$watch (watchExpression,listener,true)) 检测任意嵌套数据结构中的任何更改。它是最强大的变化检测策略,但也是最昂贵的。每个摘要都需要完整遍历嵌套数据结构,并且需要将其完整副本保存在内存中。
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |