Angular 1路绑定不影响性能

时间:2016-04-21 11:07:17

标签: javascript angularjs performance

我正在开发一个严重依赖角度进行前端任务的项目。在列表页面上显示大约50个带有ng-repeat的enteries,每个条目都有很多观察者,所以我决定减少具有角度静态绑定的观察者数量,并且能够减少nos。从12k观察者到8k观察者,但即使在观察者大幅减少之后,加载时间,dom渲染或消化周期时间也没有改善。对于8k观察者来说,摘要文件与12k观察者几乎相同或稍微多一点时间,所以看起来角度的一次性绑定在这里没有帮助。我使用了chrome的角度扩展batarang和库ng-stats。我想到的问题是:
1)为什么静态绑定/单向绑定不会增加这里的性能?
2)减少号码。观察者应该减少摘要周期并加快内容加载时间?
3)在这种情况下还有其他任何提示加速的提示吗? (除了资产缩小)。

1 个答案:

答案 0 :(得分:0)

如果减少4k的观察者数量。只需要4k就可以检查。如果你可以认为它们是简单的字符串值,则4 000字符串比较少就没有了。

关于ng-repeat性能:如果不使用,请使用track by。跟踪允许您指定列表中应检查以检测更改的列表的唯一键。

如果你有一堆数据,要非常小心你放在$scope中的内容,如果你不需要其中的一些,那么angular会观察存储在范围内的所有东西(比如一些巨大的列表)记忆),你不应该将它们存储到$scope。 当然,如果您使用controllerAs语法,这意味着您不应将它们放入this

您的应用程序可能存在一些瓶颈,您应该首先关注找到它们。

这样做的一种天真的方法就是评论/删除视图的某些部分并检查会发生什么。

另一个提示:你有一些看起来像的代码:

$http().then(function(){
   $http().then(function(){})
});

如果是,请检查您是否真的需要它,或者是否可以单独加载它们。如果您需要执行多个请求并等待所有结果执行分组流程,请使用$q.all([arrayOfPromise]).then(function([arrayOfResults]){})