使用IndexedDB作为存储来开发脱机Chrome应用程序,并且存在以下问题:

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

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

最佳答案

关于IndexedDB:

  • 有大小限制,如果您的应用超出限制,则数据将“丢失”。 (我实际上不确定unlimitedStorage是仅适用于FS还是IDB -但磁盘也有限制)。
  • Chrome应用跨设备同步,但IndexedDB存储不同步。 chrome.storage.sync可以(但更像是localStorage的替代,而不是IndexedDB的替代)。
  • 我现在似乎无法找到其详细信息,但我记得曾听说过一个罕见的错误,该错误导致某些应用程序(仅在进行特定类型的升级时)可能丢失IndexedDB数据。这真的不是标准,所以我不用担心。但是出于完整性考虑,这是丢失数据的另一种可能方式。

  • 关于Chrome Apps for Mobile using Cordova文件系统:

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

    编辑:Chrome Apps for Mobile也支持chrome.storage.local,但尚不支持同步。

    关于local-storage - Chrome应用中IndexedDB的持久性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22239086/

    10-13 06:32