为了提高 ng-repeat
的速度,而不是 2 种方式,我已更改为单一方式绑定(bind)以提高速度。但我在这里根本找不到任何速度性能。任何人都可以帮助我提高 ng-repeat
的速度吗?
当我使用单路 ng-repeats
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>
最佳答案
这里的问题是对性能改进的错误期望。该脚本不执行任何可从这些优化中受益的操作。它每次都会生成一组新数据。
同样,测试性能的方法也是错误的,它只是衡量生成一组新数据并对其进行初始摘要所花费的时间——每次都是一样的。
一次性绑定(bind)在后续对相同数据集的摘要中是有益的。
衡量这一点的方法是这样的
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>
将显示一些性能改进
<li ng-repeat="d in data">{{d.name}}{{d.address}}{{d.city}}{{d.country}}</li>
当观察者数量增加时,它变得至关重要。
关于javascript - angularjs - 一次性绑定(bind)不会在 `ng-repeat` 中提供任何性能改进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43795140/