2

在此处阅读Misko关于数据绑定的出色答案:数据绑定在 AngularJS 中如何工作?,我想知道 Angular 如何在幕后进行污垢检查,因为:

我正在创建一个应用程序,它将大量 Car 对象打印到 DOM,每个 Car 看起来像这样:

var Car = function(settings) {
    this.name = settings.name;
    + many more properties...
}
Car.prototype = {
    calcPrice: function() { ... },
    + many more methods...
}

$scope.cars = [lots of Cars];

上面的链接答案提到了在 DOM 中打印时可以通过数据绑定提供的大约 2000 个值的限制,并且由于每个 Car 对象上的大量属性,当循环通过汽车阵列。

假设您最终通过数据绑定在 DOM 中打印了 2000 多个值,并且其中一个值更新,它是否会影响 Angular 的污垢检查性能,即存在 2000 个值,或者 Angular 是否会以某种方式标记更改的值,所以它只是看起来运行 $digest() 时更改的值?换句话说,您有很多数据绑定值是否重要,而在初始打印后只有极少数可能会更新?

如果它确实很重要——并且由于大多数值都是只读的——是否有某种方法可以使用数据绑定语法 {{car.prop}} 将值一次获取到 DOM,然后告诉 Angular 不绑定对他们来说

将 getter-methods 添加到 Car 对象并提供它的属性,如 {{car.getProp()}} 会有所不同吗?

4

1 回答 1

1

我正在处理的应用程序遇到了同样的问题。拥有庞大的数据集不是问题,问题来自绑定,ng-repeats 尤其是杀死性能。解决方案的一部分是使用这个不错的库删除“动态”绑定和“静态”绑定:http: //ngmodules.org/modules/abourget-angular

于 2013-07-18T16:02:22.713 回答