2015-07-06 62 views
0

我見過的方法來減少$digest循環與$scope.$apply方法去抖數,是這樣的:。

$scope.$apply = _.debounce($scope.$apply, 250); 

是否有意義?我可以遇到什麼樣的問題?

+0

這只是一個折衷。 *如果你做了反彈:*用戶界面不會經常更新,你的應用程序狀態更新和反映這些更改的用戶界面之間可能會有250毫秒的延遲。 *如果您沒有反彈:*由於每秒的摘要週期太多,用戶界面可能會顯得呆滯。 (真正的解決方案是通過減少應用程序中綁定和監視的次數來找到一種減少摘要週期的頻率和持續時間的方法。) –

+0

@MthetheTheKing我只在我目前的項目中看到過這個。從我的角度來看,這種方法導致用戶界面上每次更新的延遲爲250毫秒,是不是會破壞用戶體驗? – havenchyk

+0

這取決於。對於許多UX而言,250毫秒的延遲確實會中斷UX。對於其他人(更新股票圖表,更新天氣),用戶可能沒有注意到或者認爲延遲是由於業務延遲造成的。我會說這是個案。 –

回答

0

這只是一個折衷。

  • 如果你去抖:的UI將不會被更新頻繁,有可能會成爲你的應用程序狀態之間進行更新和250毫秒的延遲的UI反映這些變化。
  • 如果您沒有反彈:由於每秒的摘要週期太多,用戶界面可能顯得呆滯。 (真正的解決方案是通過減少應用程序中綁定和手錶的數量來找到一種減少摘要週期的頻率和持續時間的方法。)
+0

感謝您的解釋! – havenchyk