子衿沉夜
2019-05-30 12:41:31
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
提交
取消