【问题标题】:Is IndexedDb dependent on cookie?IndexedDb 是否依赖于 cookie?
【发布时间】:2015-05-23 21:31:41
【问题描述】:

我正在开发一个原型,我们需要支持 Web 应用程序的离线数据修改,该应用程序有望在互联网连接恢复时同步回数据。我查看了各种 HTML5 浏览器内存储选项,indexeddb 看起来像我想要的。但我不确定数据是否会在浏览器关闭之间保留。那可能吗?还有一个问题,如果我删除浏览器的cookie,indexedDb中的数据会被清除吗?我最初的测试显示数据在浏览器中的 cookie 上被删除。

如果 indexeddb 不是一个可行的选择,是否有其他替代方案可以在互联网连接不可用时保留数据?

【问题讨论】:

    标签: javascript html cookies indexeddb offlineapps


    【解决方案1】:

    根据规范,使用 indexedDB 创建的数据库应该在导航和浏览器会话中保持不变。

    但当前的实现类似于persistent cookies。因此,删除 cookie 也可能会删除您的数据库。

    根据 google chrome indexedDB 是一种临时存储。

    铬: https://developer.chrome.com/apps/offline_storage

    对于 microsoft 和 firefox,它是持久的:

    微软: https://msdn.microsoft.com/en-in/hh563494.aspx

    火狐: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB

    使用前检查支持的浏览器。

    http://caniuse.com/#search=indexeddb

    【讨论】:

      【解决方案2】:

      它不依赖于 cookie,但如果您需要知道用户是谁(很可能),您最终可能会使用各种 cookie...

      至于离线同步...我之前考虑了很多并创建了一个项目...它的文档很详细,并解释了原因和方式...它可能会有所帮助,或者至少让您思考关于。它最近已更新以支持 IndexedDB!

      http://forbesmyester.github.io/SyncIt/index.html

      在这个领域还有 RemoteStorage(他们正在/正在考虑在未来的项目中使用 SyncIt + 其他位)、Hood.ie 和该领域的商业 FireBase。

      【讨论】:

      • 我实际上已经尝试过跨浏览器。不知道什么时候我清除了 cookie,indexedb 中的数据被清除了。不确定我测试是否正确
      • 好吧,很奇怪......它肯定会在会话中持续存在,为什么 cookie 会打扰你?特别是如果您正在同步,因为如果用户删除它,数据会再次下降?
      • 我正在尝试构建的应用程序是检查类型的应用程序。因此,用户将在几天内使用该应用程序离线。当他们重新启动时,他们可以将数据同步回来。但是,如果他们清除浏览器 cookie,所有检查数据都将丢失。
      • 根据您描述的上述情况,我建议您使用本机应用程序而不是 Web 应用程序。
      • @Forbesmyester 只是为了更新你们,我决定在后端使用 couchdb 和 pouchdb 来实现数据的临时持久性。 pouchdb 为 pouchdb 内置了同步基础设施,开箱即用。谢谢大家的意见。
      猜你喜欢
      • 2019-11-17
      • 2012-11-04
      • 2018-07-22
      • 1970-01-01
      • 2015-09-22
      • 2015-01-09
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多