javascript - angularjs - 一次性绑定(bind)不会在 `ng-repeat` 中提供任何性能改进

标签 javascript angularjs performance

为了提高 ng-repeat 的速度,而不是 2 种方式,我已更改为单一方式绑定(bind)以提高速度。但我在这里根本找不到任何速度性能。任何人都可以帮助我提高 ng-repeat 的速度吗?

当我使用单路 ng-repeats

在 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> 

Live Demo

最佳答案

这里的问题是对性能改进的错误期望。该脚本不执行任何可从这些优化中受益的操作。它每次都会生成一组新数据。

同样,测试性能的方法也是错误的,它只是衡量生成一组新数据并对其进行初始摘要所花费的时间——每次都是一样的。

一次性绑定(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/

相关文章:

c - 'malloc' 可能是我程序的瓶颈吗?

matlab - 有效地将数据拆分为 bin

JavaScript 闭包

javascript - 如何使用 Angular 在同一函数中进行多个 http 调用

javascript - 仍然无法弄清楚我在让 PHP 函数处理 WordPress 中的 AJAX 请求方面做错了什么

angularjs - 字段集和禁用所有子输入 - 解决 IE

javascript - 未找到状态时 UI-Router Extras 和 future 状态的 404 页面

sql - 查询postgres中的文本数组

javascript - 当 Javascript/JQuery 中 HTML 文件的类名更改时如何调用另一个函数

android - 在 InAppBrowser Ionic 中加载 Spinner