AngularJS中的数据绑定是如何工作的?数据绑定在AngularJS框架?我还没有找到技术细节他们的站点。当数据从视图传播到模型时,它的工作原理或多或少是很清楚的。但是AngularJS如何跟踪没有setter和getter的模型属性的变化呢?我发现JavaScript观察者这可能会起作用。但是它们不支持InternetExplorer 6和InternetExplorer 7。那么AngularJS是如何知道我更改了(例如,以下内容)并将此更改反映在视图中的呢?myobject.myproperty="new value";
4 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
大约2000次绑定是您开始看到问题的地方,但是无论如何,页面上不应该有超过2000条的信息。这可能是真的,但并不是每个数据绑定都对用户是可见的。一旦您开始使用双向绑定构建任何类型的小部件或数据网格,您可以容易点击2000绑定,没有一个坏的UX。
例如,考虑一个组合框,您可以在其中键入文本以筛选可用的选项。这种控制可以有150个项目,而且仍然是高度可用的。如果它有一些额外的特性(例如,当前所选项上的特定类),则每个选项开始获得3-5绑定。在一个页面中放置三个小部件(例如,一个用于选择国家,另一个用于选择所述国家的城市,另一个用于选择酒店),您已经在1000到2000绑定之间。
或者考虑一下企业web应用程序中的数据网格。每页50行并非不合理,每页可以有10-20列。如果您使用ng重复构建这个程序,并且/或在一些使用某些绑定的单元格中包含信息,那么您可能仅使用这个网格就可以接近2000个绑定。
我觉得这是巨量在使用AngularJS时,我找到的唯一解决方案是在不使用双向绑定的情况下构造小部件,而不是使用ngOnce、取消注册观察器和类似的技巧,或者使用jQuery和DOM操作来构造构建DOM的指令。我觉得这样做一开始就违背了使用角度的目的。
我很想听听其他处理这个问题的方法,但是也许我应该写我自己的问题。我想把这个写在评论里,但结果太长了.
TL;DR
数据绑定会导致复杂页面的性能问题。
添加回答
举报
0/150
提交
取消