我正在开发一个原型,我们需要支持Web应用程序的离线数据修改,应用程序可以在恢复Internet连接时同步数据。我已经看了各种HTML5浏览器内存储选项,indexeddb看起来就像我想要的那样。但我不确定数据是否会在浏览器关闭之间保持不变。那可能吗?还有一个问题,如果我删除浏览器的cookie,indexedDb中的数据是否会被清除?我的初步测试显示数据在cookie上被删除,而不是浏览器。
如果indexeddb不是一个可行的选项,那么当互联网连接不可用时,是否还有其他替代方法可以保留数据?
答案 0 :(得分:2)
根据规范,使用indexedDB创建的数据库应该是持久的acrross导航和浏览器会话。
但目前的实施方式与persistent cookies
类似。因此,删除cookie也可能会删除您的数据库。
根据谷歌Chrome,indexedDB是一种临时存储。
Chrome: https://developer.chrome.com/apps/offline_storage
对于微软和& firefox它是持久的:
Microsoft: https://msdn.microsoft.com/en-in/hh563494.aspx
Firefox: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Basic_Concepts_Behind_IndexedDB
使用前检查支持的浏览器。
答案 1 :(得分:1)
它不依赖于cookie,但如果您需要知道用户是谁(可能),您可能最终会使用某种类型的cookie ...
至于离线同步......我之前想过这个并创建了一个项目......它的文档很详细,并解释了为什么以及如何...它可能会有所帮助,或者至少可以让你思考一下关于。它最近更新为支持IndexedDB!
http://forbesmyester.github.io/SyncIt/index.html
在这个领域还有RemoteStorage(他们正在/正在考虑使用项目中的SyncIt +其他位),Hood.ie和该领域的商业FireBase。