我正在开发一个视图,每次打开视图时都需要调用 Web 服务的多个方法,我应该使用$scope.$on('$ionicView.enter', function(){...})
还是cache:false
?
每个人之间的真正区别是什么?
我正在开发一个视图,每次打开视图时都需要调用 Web 服务的多个方法,我应该使用$scope.$on('$ionicView.enter', function(){...})
还是cache:false
?
每个人之间的真正区别是什么?
我真的很喜欢这个问答:
凡比拼班达里很好地总结了选择,我们有离子缓存机制
cache: false
,$ionicConfigProvider.views.maxCache(0)
;因此,在缓存到位后,控制器将只执行一次:
缓存视图以提高性能。当一个视图被导航离开时,它的元素留在 DOM 中,它的作用域与 $watch 循环断开连接。当导航到已经缓存的视图时,它的作用域会重新连接,并且留在 DOM 中的现有元素再次变为活动状态。
我们可以钩住这些事件……用这个控制器做一些“永远的事情”
$ionicView.enter
是每次激活所选视图时广播的事件。
cache:false
意味着页面永远不会被缓存,因此每次都完全重新加载。
我个人尽量避免使用缓存 false ,因为它会导致性能不佳,但会产生副作用,因为当您重新使用时,您的控制器不会再次初始化。
相反,当我进入一个视图时,我使用$ionicView.enter
或$ionicView.afterEnter
触发页面的几个动作来完全完成加载。