日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

angular的性能分析 -随记

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的性能分析 -随记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。