0

存储在目前正常使用的应用程序中,所有数据在更新中都消失了。@ionic / storage 版本或ionic版本没有变化。

此外,数据消失后创建的数据也正常新保存。初始化Storaage数据的条件是什么?

"@ionic/storage": "2.0.0"


--- Ionic Info ---

Ionic:

   ionic (Ionic CLI)  : 4.0.1 (C:\Users\xxxxx\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.1.11

Cordova:

   cordova (Cordova CLI) : not installed
   Cordova Platforms     : android 6.3.0, ios 4.5.4

System:

   Android SDK Tools : 26.1.1
   NodeJS            : v8.11.3 (C:\Program Files\nodejs\node.exe)
   npm               : 6.2.0
   OS                : Windows 7

Environment:

   ANDROID_HOME : C:\Users\xxxxx\AppData\Local\Android\Sdk
4

1 回答 1

0

Ionic Storage 是 localForage 库的“包装器”,它在底层包装了不同的持久性解决方案(通过“驱动程序”)。如果离子存储在设备上作为混合(cordova 应用程序)运行,则唯一“保证”的持久性是 SQLite。其他基于浏览器的驱动程序(indexeddb 或 websql)根据特定的浏览器允许保存数据。而且这种基于浏览器的持久性并不是真正的“保证”,因为它受制于:

  • 浏览器报价(浏览器允许网站存储多少磁盘空间)
  • 浏览器模式(如可以阻止 localStorage 等的隐私模式)
  • 浏览器需要为另一个站点使用空间(例如,它可以开始从您的应用程序中删除数据)

所以总的来说,除非你使用 SQLite - 将此离子存储视为某种持久缓存......

另请记住,Ionic Storage 可以在某一时刻使用一种可用的存储类型,然后在条件发生变化时切换到另一种类型,从而使您的数据在 websql 中仍然可用但无法访问,因为您的应用程序可能已切换到 indexeddb。为避免这种情况,最好严格控制可用驱动程序及其优先顺序/初始化顺序

于 2018-08-16T14:20:34.950 回答