$ionicView.enter 和 cache:false 有什么区别

IT技术 javascript angularjs ionic-framework ionic
2021-02-21 12:56:38

我正在开发一个视图,每次打开视图时都需要调用 Web 服务的多个方法,我应该使用$scope.$on('$ionicView.enter', function(){...})还是cache:false

每个人之间的真正区别是什么?

2个回答

我真的很喜欢这个问答:

ui.router 不重新加载控制器

比拼班达里很好地总结了选择,我们有离子缓存机制

  1. 避免缓存 cache: false
  2. 禁用缓存$ionicConfigProvider.views.maxCache(0)
  3. 或者保持缓存不变,让控制器只执行一次......同时在这些View LifeCycle 和 Events期间做一些聪明的事情

因此,在缓存到位后,控制器将只执行一次:

缓存视图以提高性能。当一个视图被导航离开时,它的元素留在 DOM 中,它的作用域与 $watch 循环断开连接。当导航到已经缓存的视图时,它的作用域会重新连接,并且留在 DOM 中的现有元素再次变为活动状态。

我们可以钩住这些事件……用这个控制器做一些“永远的事情”

很高兴看到这一点,真的 ;) 享受很棒的 ionic 框架!
2021-05-18 12:56:38
谢谢 Radim,你的答案正是我想要的。
2021-05-19 12:56:38

$ionicView.enter 是每次激活所选视图时广播的事件。

cache:false 意味着页面永远不会被缓存,因此每次都完全重新加载。

我个人尽量避免使用缓存 false ,因为它会导致性能不佳,但会产生副作用,因为当您重新使用时,您的控制器不会再次初始化。

相反,当我进入一个视图时,我使用$ionicView.enter$ionicView.afterEnter触发页面的几个动作来完全完成加载。

感谢 Aorfevre,简单而有用的答案
2021-05-02 12:56:38