Html Chrome应用程序中的indexedDB

Html Chrome应用程序中的indexedDB,html,google-chrome-extension,indexeddb,google-chrome-app,persistent-object-store,Html,Google Chrome Extension,Indexeddb,Google Chrome App,Persistent Object Store,我正在构建一个chrome应用程序,它需要一个持久性和本地数据库,在这种情况下,可以是索引数据库或基本的对象存储。在开始开发应用程序之前,我有几个问题: 在卸载chrome应用程序和chrome浏览器后,是否可以保留indexedDB数据 如果indexedDB文件/数据持续存在,我可以找到并查看它吗 如果我可以找到但无法查看它,是否可以更改indexedDB文件的位置 我可以将indexedDB存储在桌面或任何其他自定义位置的文件中吗 如果我有这些要求,我会看到您可能追求的几个选项 编写一个由

我正在构建一个chrome应用程序,它需要一个持久性本地数据库,在这种情况下,可以是索引数据库或基本的对象存储。在开始开发应用程序之前,我有几个问题:

  • 在卸载chrome应用程序和chrome浏览器后,是否可以保留indexedDB数据
  • 如果indexedDB文件/数据持续存在,我可以找到并查看它吗
  • 如果我可以找到但无法查看它,是否可以更改indexedDB文件的位置
  • 我可以将indexedDB存储在桌面或任何其他自定义位置的文件中吗

  • 如果我有这些要求,我会看到您可能追求的几个选项

  • 编写一个由文件系统API支持的简单数据库,定期锁定数据库并备份该文件。这将是非常酷的,因为我不知道有谁实现了一个简单的文件系统API支持的数据库,但我可以看到它对其他用途很有用

  • 对数据库所做的任何编辑也将被复制到存储在备份服务器上的数据库副本上,我将编写可以从备份中导入快照的函数

  • 只需编写函数,从indexedDB导出到备份中的某种格式,然后从备份中导入

  • 所有的选择似乎都相当耗时。如果在创建indexedDB时,您可以指定一个HTML文件系统API条目文件来支持它,这样您就不必执行1或2操作,这将是一件很酷的事情


    我同意indexedDB很难备份,这似乎是一个相当大的疏忽。

    我目前正在尝试做同样的事情。我使用的是Chrome Sync文件系统Api(),但在某些情况下,我的文件(或其内容)被删除。使用这种方法,我编写了一个JSON对象。希望这有帮助

    我正在编写一个只支持浏览器的基本应用程序。目前没有后端服务器代码。所以我也有存储要求。但我不做备份。我将PockDB视为一种解决方案:

    到目前为止,一切都很好。他们还提到,他们可以很好地与谷歌应用程序配合使用

    很好的一点是,您可以将PockDB数据与服务器couchdb实例同步。

    如果希望在没有服务器支持的情况下将应用程序保持在浏览器本地,可以使用批处理获取备份整个数据库


    在将结果放入文件系统之前,我将通过gzip运行它

    就这点而言@Shourya,如果您希望在应用程序之外持久化数据,您可以在应用程序中保留一个副本,并使用iframe复制它以在web域中持久化(想想iframe或类似于使用postMessage),这样您就可以“移动”它。但就应用程序中的实际数据库而言,不,你根本无权访问它,只能访问表中的数据。@joseeight我没有选项将其与远程服务器/google drive/web服务器同步。我明白了,那么你到底想做什么?我已经在Chrome中处理了很多存储问题,并且确信您不能以文件形式访问数据库。但我不明白你为什么要这么做。@Joseeght我只是想确保indexedDB保持不变,即使我必须重新安装我的应用程序或chrome浏览器。我不清楚数据是如何存储的,但indexedDB的数据存储在Windows上的
    C:\Users\username\AppData\Local\Google\Chrome\User data\Default\indexedDB
    中,该文件夹中有每个带有indexedDB的站点的文件夹。我不认为您可以将其配置为保存到其他位置。您的意思是说我可以将indexedDB放入文件中吗?不,但我的意思是,如果indexedDB以这种方式实现,那将非常棒。但是,它不是本规范的一部分。您可以实现自己的数据库,该数据库使用文件进行存储。我应该使用存储API将indexedDB数据推送到阵列中并存储在文件中,还是有更好的方法呢!我们有chrome.storage.sync、chrome.storage.local、indexedDB和不推荐使用的WebSQL。其中“sync”是我测试过的唯一一个在重新安装过程中保持不变的选项。我需要存储大量数据,所以它给我留下了“本地”的印象,而chrome没有提供存储对象的api。这让我别无选择,只能将我的应用程序移植到AdobeAIR。这只是一个复制粘贴的东西(端口到空气)。好的一点,同步只允许这么多的空间。。我最初的想法是使用谷歌硬盘本身存储数据,而不是从那里提取数据。。