Chrome应用程序中IndexedDB的持久性如何

ano*_*non 7 persistent-storage local-storage indexeddb google-chrome-app

使用IndexedDB作为存储开发离线Chrome应用,并提出以下问题:

1.除了用户在我的应用程序中打开控制台并清除indexedDB之外还有其他任何方式我不得不担心IndexedDB数据丢失了吗?

2.由于Chrome应用程序现在可以使用cordova移植到ios和android,因此unlimitedStorage和FileSystem Apis也能在这些平台上运行吗?所以我可以使用它们来存储我的索引数据库并使用文件系统来保持indexeddb的备份.

mmo*_*cny 2

关于IndexedDB

  1. 大小有限制,如果您的应用程序超过这些限制,数据将“丢失”。(我实际上不确定是否unlimitedStorage仅适用于 FS 还是也适用于 IDB ——但无论哪种方式,磁盘也有限制)。

  2. Chrome 应用程序可以跨设备同步,但 IndexedDB 存储则不能。 chrome.storage.sync确实如此(但更像是localStorage替代而不是IndexedDB替代)。

  3. 我现在似乎无法找到有关它的详细信息,但我记得听说过一个不常见的错误,该错误导致某些应用程序(仅在经历特定类型的升级时)可能会丢失 IndexedDB 数据。这确实不是常态,所以我不会担心。但为了完整起见,这是丢失数据的另一种可能的方式。

关于使用 Cordova 文件系统的 Chrome 移动应用程序

我们确实支持chrome.fileSystem(以及 HTML5 文件系统),但是IndexedDB在 KitKat 之前的 iOS WebView 和 Android WebView 中均不原生支持。您可以安装一个cordova插件来使其工作(我自己也使用过这个插件),但我不确定备份和恢复数据库本身有多值得信赖/容易(您为什么要这样做?)。

编辑:Chrome移动应用程序也支持chrome.storage.local但尚不支持同步。