Angularjs 带选项卡和表格的角度性能

Angularjs 带选项卡和表格的角度性能,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我即将构建一个新的单页web应用程序,我认为主视图将非常复杂,我正在尝试决定是否使用Angular.js。我担心的是,是否会有太多的数据绑定导致UI的性能变得缓慢 该应用程序将有一个由2个面板组成的视图。一个将有8个选项卡,每个选项卡包含一个表,表中有3列,40行,每行一列有一个数字列表(最多4个数字),其中每个数字都可以单击(单击一个数字会导致另一个窗格中发生某些事情)。我考虑使用ng repeat指令从后端提供的数据动态创建选项卡、表格和数字列表,因为不同用户的内容不同。因此,我认为这意味着

我即将构建一个新的单页web应用程序,我认为主视图将非常复杂,我正在尝试决定是否使用Angular.js。我担心的是,是否会有太多的数据绑定导致UI的性能变得缓慢

该应用程序将有一个由2个面板组成的视图。一个将有8个选项卡,每个选项卡包含一个表,表中有3列,40行,每行一列有一个数字列表(最多4个数字),其中每个数字都可以单击(单击一个数字会导致另一个窗格中发生某些事情)。我考虑使用ng repeat指令从后端提供的数据动态创建选项卡、表格和数字列表,因为不同用户的内容不同。因此,我认为这意味着8*(2+4)*40(1920)件物品的手表被添加到$watch列表中。我认为这意味着每次$digest循环中都会检查很多内容,即使这些项目在第一次创建后永远不会更改

第二个窗格将有其他选项卡和项目,尽管没有第一个窗格那么多,因此如果我使用AngularJS和ng repeat,那么总的来说将有2000多个项目涉及数据绑定

在使用AngularJS时,一个视图中的项目是否太多,即,如果有这么多的项目,UI性能是否会变得缓慢

有没有其他方法可以使用AngularJS动态创建选项卡和表,而不使用ng repeat来减少数据绑定项的数量?

是Misko关于性能的一个很好的答案


TL;DR:2000个元素就可以了

我可以建议的一些优化是

  • 看看指令。一旦数据有界,就不会创建监视。这将解决您的大多数问题
  • 使用指令,如
    ng if
    destroy\根据条件创建DOM。如果某个选项卡不在焦点上,则数据绑定到该选项卡的点是什么。及时装订。并且可能在焦点选项卡丢失后销毁页面DOM(使用ng if)

还可以使用虚拟数据测试应用程序,以验证实际性能如何,以及尝试我提到的第二个选项是否有意义。

我发现这个答案特别有用,但在下载之前…从angular 1.3开始,有一种方法可以绑定一次内置的。。。