鍍金池/ 教程/ HTML/ 優(yōu)化 digest cycle
過濾器
模塊
其他
控制器
服務(wù)
路由
模板
優(yōu)化 digest cycle
目錄結(jié)構(gòu)
指令

優(yōu)化 digest cycle

  • 只監(jiān)聽必要的變量(例如:在進(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的單線程特性,$digest loop 只能在單一線程進(jìn)行)
  • 當(dāng)監(jiān)聽集合時(shí), 如果不是必要的話不要深度監(jiān)聽. 最好使用 $watchCollection, 對(duì)監(jiān)聽的表達(dá)和之前表達(dá)的估值進(jìn)行淺層的檢測(cè).
  • $timeout 設(shè)置第三方參數(shù)為 false 來跳過 $digest 循環(huán) 當(dāng)沒有變量被 $timeout 回調(diào)函數(shù)所影響.
  • 當(dāng)面對(duì)超大不太改變的集合, 使用 immutable data structures.
上一篇:其他下一篇:目錄結(jié)構(gòu)