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

时间:2014-03-07 00:27:22

标签: local-storage google-chrome-app indexeddb persistent-storage

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

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

2.由于Chrome应用程序现在可以使用cordova移植到ios和android,那么unlimitedStorage和FileSystem Apis是否也适用于这些平台?所以我可以使用它们来存储我的索引数据库并使用文件系统来保留indexeddb的备份。

2 个答案:

答案 0 :(得分:1)

关于IndexedDB

  1. 尺寸有限制,如果您的应用超出限制,数据将“丢失”。 (我不确定unlimitedStorage是仅适用于FS还是IDB - 但无论哪种方式,磁盘也有限制。)

  2. Chrome应用在设备间同步,但IndexedDB存储不同步。 chrome.storage.sync可以(但localStorage替换IndexedDB替代chrome.fileSystem

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

  4. 关于Chrome Apps for Mobile using Cordova fileSystems:

    我们支持IndexedDB(以及HTML5文件系统),但在KitKat之前的iOS WebView和Android WebView中本身不支持chrome.storage.local。有一个cordova plugin you can install to get it to work(我自己也用过这个),但我不确定备份和恢复数据库本身是多么可靠/容易(你为什么要这样做?)。

    修改:Chrome Apps for Mobile也支持{{1}},但尚不支持同步。

答案 1 :(得分:0)

如果您要求Chrome应用或扩展程序的清单文件中的unlimitedStorage权限,则存储空间与硬盘驱动器上的可用空间一样大。在这种情况下,您的应用程序不会超过限制大小

请参阅chrome app unlimited storage