AngularJS 優(yōu)化 digest cycle

2018-09-28 16:59 更新

優(yōu)化 digest cycle

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)