iT邦幫忙

DAY 2
1

實習、專題除錯筆記系列 第 2

實習、專題除錯筆記(二)-- $watch 和 ng-change 使用上的建議

  • 分享至 

  • xImage
  •  

問題二 ---- $watch 和 ng-change 使用上的建議

以下網址大概簡單的範例了 $watch, ng-change, ng-click 處理 Input 欄位。

http://jsbin.com/wegiqesulise/3/edit

在實習工作的時候碰到搜尋欄位的需求,我第一時間覺得 $watch 實作起來很快很方便,但是用到後來發現有很大的問題,$watch 會監聽綁定的 ng-model 的數值情況,所以在搜尋功能製作的時候設計起來很快就可以實作起來了,後來我們有需要大量的搜尋欄位需求,所以就複製貼上,畢竟情況相同,新的搜尋欄位也很快的就也弄好了。

但是後來發現一個頗嚴重的問題,就是頁面讀取的時間越來越長,隨著欄位的增加,整個頁面的載入時間變長,後來去探討原因,發現原來 $watch 在每次頁面載入的時候都會先執行一次,所以有十個 $watch 的話,第一時間載入的時候就會觸發十個 $watch 監聽事件,導致載入的時間大幅度的增加。

另外發現如果使用者打字的速度太快,$watch 也很有可能會跟不上,原因可能是 $watch 執行效能較慢。

發現問題後,我簡單的用 ng-change 實作了一下,其實並不難,只要將 ng-model 在 function 中當參數帶入 controller 就可以使用了。結論,$watch 使用簡單,但是大量使用可能會有效能上的問題。


上一篇
實習、專題除錯筆記(一)-- 為什麼我同時引用了 Angular 和 jquery ,jquery 就不能用了呢?
下一篇
實習、專題除錯筆記(三)-- 為什麼用了 Angular 的第三方套件就沒辦法 binding?
系列文
實習、專題除錯筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言