AngularJS 優(yōu)化 digest cycle

2018-09-28 16:59 更新

優(yōu)化 digest cycle

  • 只監(jiān)聽必要的變量(例如:在進行實時通訊時,不要在每次接收到消息時觸發(fā) $digest loop)
  • 對于那些只初始化一次并不再改變的內(nèi)容, 使用一次性 watcher bindonce 對于早期的 AngularJS 或者一次性 bindings 對于 AngularJS >=1.3.0.
  • 盡可能使 $watch 中的運算簡單。在單個 $watch 中進行繁雜的運算將使得整個應用延緩(由于JavaScript的單線程特性,$digest loop 只能在單一線程進行)
  • 當監(jiān)聽集合時, 如果不是必要的話不要深度監(jiān)聽. 最好使用 $watchCollection, 對監(jiān)聽的表達和之前表達的估值進行淺層的檢測.
  • $timeout 設置第三方參數(shù)為 false 來跳過 $digest 循環(huán) 當沒有變量被 $timeout 回調(diào)函數(shù)所影響.
  • 當面對超大不太改變的集合, 使用 immutable data structures.
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號