2

我正在构建一个 chrome 应用程序,它需要一个持久本地数据库,在这种情况下可以是indexedDB或 basic object storage。在开始开发应用程序之前,我有几个问题:

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

3 回答 3

4

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

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

  2. 对数据库的任何编辑也会对存储在备份服务器上的数据库副本进行,我会编写可以从备份中导入快照的函数。

  3. 只需编写函数以从 indexedDB 导出到某种格式到备份中,然后从备份中导入。

所有选项似乎都非常耗时。如果您在创建 indexedDB 时可以指定一个 HTML FileSystem API 条目文件来支持它,那就太好了,这样您就不必执行 1 或 2。

我同意 indexedDB 很难备份似乎是一种疏忽。

于 2014-01-23T16:52:06.883 回答
2

我正在编写一个基本的仅限浏览器的应用程序。目前没有后端服务器代码。所以我也有存储需求。但我不做备份。我正在寻找 pouchdb 作为解决方案:http: //pouchdb.com/

到目前为止,一切看起来都很好。他们还提到他们可以很好地与 Google Apps 配合使用。

http://pouchdb.com/faq.html#native_support

好消息是您可以将您的 pouchdb 数据与服务器 couchdb 实例同步。
http://pouchdb.com/api.html#replication

http://pouchdb.com/api.html#sync

如果您想在没有服务器支持的情况下将应用程序保持在浏览器本地,您可以使用批量提取来备份整个数据库。

http://pouchdb.com/api.html#batch_fetch

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

于 2014-11-23T21:08:26.467 回答
0

我目前正在尝试同样的事情。我正在使用 Chrome 同步文件系统 Api ( http://goo.gl/5q8Z9M ),但在某些情况下我的文件(或其内容)被删除。通过这种方法,我正在写出一个 JSON 对象。希望这可以帮助。

于 2014-01-28T19:16:24.887 回答