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

时间:2015-06-26 12:55:50

标签: javascript angularjs ionic-framework ionic

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

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

2 个答案:

答案 0 :(得分:13)

我非常喜欢这个Q&答:

ui.router not reloading controller

Bipin Bhandari很好地总结了我们对离子缓存机制的选择

  1. 避免cache: false
  2. 缓存
  3. 使用$ionicConfigProvider.views.maxCache(0);
  4. 禁用缓存
  5. 或按原样保持缓存,让控制器只执行一次......在这些View LifeCycle and Events期间做一些聪明的事情
  6. 因此,在缓存到位后,控制器将只执行一次:

      

    缓存视图以提高性能。当视图被导航离开时,其元素将保留在DOM中,并且其范围与$ watch循环断开连接。导航到已缓存的视图时,其范围将重新连接,并且留在DOM中的现有元素将再次变为活动状态。

    我们可以挂钩这些事件......做一些"总是东西"使用此控制器

答案 1 :(得分:9)

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

cache:false表示页面永远不会被缓存,因此每次都会重新加载。

我个人试图避免使用缓存假,因为它表现不好但有副作用,因为你的控制器在你重新开始时不会再次初始化。

相反,当我输入一个视图时,我用户$ionicView.enter$ionicView.afterEnter触发多个动作,以便页面完全加载。