過濾器
模塊
其他
控制器
服務(wù)
路由
模板
優(yōu)化 digest cycle
目錄結(jié)構(gòu)
指令
優(yōu)化 digest cycle
- 只監(jiān)聽必要的變量(例如:在進行實時通訊時,不要在每次接收到消息時觸發(fā)
$digest
loop)
- 對于那些只初始化一次并不再改變的內(nèi)容, 使用一次性 watcher
bindonce
對于早期的 AngularJS 或者一次性 bindings 對于 AngularJS >=1.3.0.
- 盡可能使
$watch
中的運算簡單。在單個 $watch
中進行繁雜的運算將使得整個應(yīng)用延緩(由于JavaScript的單線程特性,$digest
loop 只能在單一線程進行)
- 當監(jiān)聽集合時, 如果不是必要的話不要深度監(jiān)聽. 最好使用
$watchCollection
, 對監(jiān)聽的表達和之前表達的估值進行淺層的檢測.
- 在
$timeout
設(shè)置第三方參數(shù)為 false 來跳過 $digest
循環(huán) 當沒有變量被 $timeout
回調(diào)函數(shù)所影響.
- 當面對超大不太改變的集合, 使用 immutable data structures.