過濾器
模塊
其他
控制器
服務(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.