我正在考虑编写一个具有离线支持的移动网络应用程序,并且更愿意使用HTML5离线功能而不是像phonegap这样的功能。
应用程序的一个要求是它存储2个不同类型对象的集合(我们称之为书籍和作者),这些对象在线时将从服务器下载。如果它不需要离线,那么我会使用一些SQL表格或(最好)基于文档的数据库来存储这些项目,但是做了一些基本的调查我没有发现任何感觉“正确” “离线工作。
我的问题是:存储这些项目的最佳策略是什么?到目前为止我所考虑的事项:
HTML5 localStorage - 似乎有相对广泛的支持,但仅限于键值对,这意味着一个稍微不愉快的数据结构 - 可能有一个total-authors
键,然后是一系列author-1....author-n
密钥文档对。这对我来说是错误的 - 就像我试图解决存储的意图一样。
CouchDb - 我过去曾经使用过CouchDb,所以很想使用它或等效的,但“适当的”CouchDb会需要原生应用(我没有经验),我看到的2个浏览器中的等价物看起来似乎没有这个诀窍: Lawnchair 似乎没有增加localStorage
选项和 BrowserCouch 最近似乎没有太多活动(这总是让我警惕)。
WebDb - 看起来它会很完美......除了它似乎已经正式停产并且看起来并没有得到广泛支持
Gears - 停止使用
IndexedDB - 目前有限的浏览器支持(至少根据caniuse)
我确信那里必须有某些东西可以做我想要的东西,我只是设法忽视它。任何人都可以建议应该这样做的方式(而不是可以完成的方式)吗?
答案 0 :(得分:2)
据我所知,目前还没有浏览器原生的简单解决方案;你必须要么使用localStorage,要么开发WebDB和IndexedDB。
但是非本地的你可以使用像lawnchair这样的抽象层(默认使用localStorage,indexeddb,webdb等可用的插件)或者SO-user Gatapia wrote for picnet(使用indexeddb& webdb) can find on github。