2015-07-06 24 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