当前位置: 首页 > 知识库问答 >
问题:

是否可以清除爱奥尼亚中的视图缓存?

辛承志
2023-03-14

我目前正在从事Angular/Ionic/Cordova项目,我们最近升级到了最新的Ionic测试版。从项目之前使用的版本来看,这引入了视图缓存。然而,这也带来了一个问题。

该应用程序面向客户,非常以数据为中心。但是,用户必须进行身份验证才能查看当前与其帐户关联的数据;当用户注销并登录到另一个帐户时,由于视图仍在缓存中,因此会显示上一个帐户的视图。

当用户登录时,应用程序仍应缓存视图,因为这有助于让应用程序感觉更快,但当用户注销时,应清除缓存。

设置cache-view="false"不是一个选项,因为它会完全禁用缓存。

我还尝试设置了$ionicConfig。意见。maxCache(0)

我能想到的最后一件事是当用户登录时触发一个事件,刷新当前加载到视图中的所有数据——但是,这将比我认为应该做的要多花一点精力。

有没有办法简单地清除视图缓存?

共有3个答案

越英韶
2023-03-14

您也可以通过在您的$stateProvider中设置cache: false来做到这一点:

$stateProvider.state('myState', {
   cache: false,
   url : '/myUrl',
   templateUrl : 'my-template.html'
})
南门鸿哲
2023-03-14

我偶然发现了一个类似的场景,在另一个用户登录时,我看到的是陈旧/缓存的视图。您可以在状态定义级别执行缓存:false,但这会完全禁用应用程序中该状态的缓存。

当用户进入应用程序的登录/登录状态时(如您所说),您可以清除所有缓存的视图和历史记录。看起来很理想。

// code inside your signin controller

$scope.$on("$ionicView.enter", function () {
   $ionicHistory.clearCache();
   $ionicHistory.clearHistory();
});
戚翼
2023-03-14

在app.js的状态定义中,您可以添加cache: false来禁用缓存(请参阅Ionic文档中的状态提供者中的禁用缓存。或者,您可以继续缓存,除非您知道数据已更改。

  • 如果您已经在页面上,您可以执行以下操作:$state.go($state.currentState, {}, {reload: true})
  • 如果你在另一个状态,想要回到正常缓存的状态,但是你希望它被刷新,你可以这样做,$ion icHistory.clearCache()。

请注意,后者需要clearCache返回一个Promise。请参阅我在此拉取请求中所做的更改,并将您现在拥有的clearCache的实现与我的比较:https://github.com/driftyco/ionic/pull/3724

 类似资料:
  • 这是一个简单的应用程序: 从主页按ADD时,将显示New Ionic页面。 用户键入标题和内容后,按Add,列表中将添加一条注释,然后应用程序导航回主页。我所做的是:-创建添加注释页。-在添加注释中。ts,我返回主页,如下所示: } 在添加注释中。html我定义了如下按钮: 我尝试this.navCtrl.popToRoot()但它不工作。 有人知道原因吗?

  • 谷歌宣布,自2019年8月1日起,所有新应用程序和应用程序更新都必须提供64位版本和32位版本。我有一个Ionic 3(Cordova)应用程序,我不确定这会有什么影响。具体来说,爱奥尼亚/科尔多瓦应用程序需要做什么才能满足这一要求? 从2019年8月1日开始: 发布到Google Play时,除了32位版本外,所有包含本机代码的新应用和应用更新都必须提供64位版本。

  • 我想在Ionic4(角度7)中添加一个后退按钮。但我找不到合适的角度路由器方法。 <代码>从“@角度/路由器”导入{路由器} 在组件处理程序中单击按钮时如何返回?我想使用“@角度/路由器”而不是“@角度/公共”来实现它=

  • 我正试图使用这个工具将谷歌分析添加到一个Ionic/phonegap/Covdova应用程序中。然而,我发现了以下错误: 配置根项目“android”时出现问题。无法解析配置“:_debugCompile”的所有依赖项。找不到任何与com匹配的版本。谷歌。Android游戏服务s-analytics:。在以下位置搜索:https://repo1.maven.org/maven2/com/googl

  • 我知道如何清除缓存以供查看: ,但我还需要其他东西-删除controller方法中应用程序的所有缓存。怎么做?

  • 我刚刚开始学习angular和IONIC来构建一个应用程序。 我刚刚启动了一个包含离子的新应用程序,并从json文件中列出了一个项目列表。这很好用,但由于im跳入路由,我只看到一个空白页,我没有犯错误。 这是我的索引。html: 这是maapp.js文件: 这应该是我回家的模板(home.html) 我只是不明白这是怎么回事,也许你看到了一个错误? 提前谢谢 卢克