angular的性能分析 -随记
生活随笔
收集整理的這篇文章主要介紹了
angular的性能分析 -随记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
$watch 的實現原理和性能分析
- 只有雙向綁定的 scope 才會被加入$watch隊列,或者手動綁定$watch的$scope
- 所有放在 $scope 中的變量或函數都被加入到了$watch隊列當中,每次只要$scope中的一個變量的值發生變化,Angular就會自動調用$apply或者$digest來把所有在$watch隊列中的變量或函數都執行一遍,然后把當前值和上一次的值就行比較,如果有變化,就會在執行一遍(一直循環,最多11次),知道沒有變化就會停止
- 任何事件如果調用Angular的context中的函數之后,都會對$watch隊列進行對比執行,不管有沒有對$scope進行改變,
例如:ng-click 執行了一個函數 $scope.say = function(){ \nothing }, 在這個函數里面沒有任何操作,但還是會執行$watch隊列
ng-repeat 的原理和性能問題
- 在ng-repeat循環中的每一個item都會建立一個單獨的scope并對每個scope中的model進行$watch.
- 這樣的話如果有200條數據,每條數據中5個屬性要被$watch, 那么就是 200 * 5次,又因為每次臟數據檢測至少都需要執行兩次來保證所有變化都被應用,那么就是 200 * 5 * 2, 在加上單獨的 ng-repeat一個和其他的model為n個,就是 200 * 5 * 2 + 1 + n, 如果這個數據超過2500的話頁面就會變得很慢了
- 所以如果ng-repeat的數據只是用來展示不需要對其進行操作的話就可以取消$watch綁定,可以使用一個Angular的第三方directive: Bindonce.
轉載于:https://www.cnblogs.com/wxlevel/p/7454033.html
總結
以上是生活随笔為你收集整理的angular的性能分析 -随记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机矩阵键盘扫描程序c语言,51单片机
- 下一篇: 物理层协议