Javascript angularjs-一次绑定不会在'ng repeat'中提供任何性能改进`
要在Javascript angularjs-一次绑定不会在'ng repeat'中提供任何性能改进`,javascript,angularjs,performance,Javascript,Angularjs,Performance,要在ng repeat中提高速度,而不是双向,我已更改为单向绑定以提高速度。但我在这里根本找不到任何速度表现。有谁能帮我提高一下ng repeat的速度吗 当我使用单向ng重复在2之间移动时,我的过程输出显示为没有大的变化 VM780 script.js:30 Process time: 124 //single way VM780 script.js:30 Process time: 132 //double way VM780 script.js:30 Process time: 120 /
ng repeat
中提高速度,而不是双向,我已更改为单向绑定以提高速度。但我在这里根本找不到任何速度表现。有谁能帮我提高一下ng repeat
的速度吗
当我使用单向ng重复在2之间移动时,我的过程输出显示为没有大的变化
VM780 script.js:30 Process time: 124 //single way
VM780 script.js:30 Process time: 132 //double way
VM780 script.js:30 Process time: 120 //single way
VM780 script.js:30 Process time: 121 // double way
VM780 script.js:30 Process time: 124 // single way
以下是我使用的ng repeat
<div class="showList">
<ul>
<li ng-repeat="d in data">{{::d.name}}{{::d.address}}{{::d.city}}{{::d.country}}</li>
<!-- <li ng-repeat="d in data">{{d.name}}{{d.address}}{{d.city}}{{d.country}}</li> -->
</ul>
</div>
- {{::d.name}{{::d.address}{{::d.city}{{::d.country}
这里的问题是对性能改进的错误期望。该脚本不会从这些优化中获益。它每次生成一组新的数据
类似地,测试性能的方法也是错误的,它只是测量生成一组新数据并对其进行初始摘要所需的时间——每次都是相同的
在对同一组数据进行后续摘要时,一次性绑定是有益的
衡量这一点的方法如下
setInterval(function () {
console.time('digest');
$scope.$apply();
console.timeEnd('digest');
}, 1000)
这边
<li ng-repeat="d in data">{{::d.name}}{{::d.address}}{{::d.city}}{{::d.country}}</li>
{{::d.name}{{::d.address}{{::d.city}{{::d.country}
将显示一些性能改进
<li ng-repeat="d in data">{{d.name}}{{d.address}}{{d.city}}{{d.country}}</li>
{{d.name}{{d.address}{{d.city}{{d.country}
当观察者计数变得更高时,它变得至关重要。另外,它应该是数据中的::d
。如果你不知道你在优化什么,那么优化是没有意义的。在这种情况下,填充数据后,下一个摘要将受到影响,并且没有下一个摘要。而且它根本不是单向绑定。这是一次绑定。实际上,::d in data
抛出错误,而我使用的是d in::data
-但性能仍然没有改进。是的,它应该是d in::data。当然,在初始摘要上不会有性能改进。当然,在按下下一个按钮时,d in::data
的性能会有所提高,因为数据只会绑定一次。这可能不符合预期(更改$scope.data不会更新表),但有显著的性能改进,比如100ms与5ms。