我的应用程序使用webSQL的客户端数据库存储来存储用户的信息。我听说浏览器开始转向webSQL。目前只有chrome,safari和Opera支持它。因为IE和Firefox不支持webSQL,所以如果用户使用这些浏览器,我会使用cookie来存储信息。但是,cookie不是很安全,很难存储大量数据。我的问题是,现在有没有更好的选择类似于所有浏览器支持的javascript API?感谢。
答案 0 :(得分:3)
我认为IndexedDB将是一个基于对象的数据存储的选项。它目前支持Chrome,Firefox和IE 10也将在未来支持它。
请查看以下演示文稿,以便更好地理解 http://html5-demos.appspot.com/static/html5storage/index.html#slide1
根据我的经验,我建议使用包装库,以降低未来浏览器更改的风险。下面列出了很少的流行图书馆
答案 1 :(得分:2)
我迟了几年,但鉴于此问题被问到,客户端浏览器空间的发展,我想我会加上我的两分钱。
当问到这个问题时,IndexedDB是唯一的替代WebSQL,尽管当时对它的支持很不稳定。虽然今天前者仍然适用,但后者不是:现在,all of the major browser vendors have an implementation of IndexedDB。
考虑到IndexedDB是目前唯一保留在W3C标准轨道上的数据库,就本机客户端数据库而言,它几乎是唯一的选择。
但是在深入研究IndexedDB之前,您应该了解一些事情。第一个是它是一个非关系文档存储,因此本身不支持SQL。第二个是它的API ......至少可以说是笨拙的。
鉴于这些事情,我建议您查看BakedGoods。有了它,例如,将一个或多个数据项放在IndexedDB数据库中就像这样简单:
bakedGoods.set({
data: [{key: "key1", value: "value1"}, {key: "key2", value: "value2"}],
storageTypes: ["indexedDB"],
function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){}
});
当然,如果你是某种受虐狂,你可以忽略我的建议并处理原始API。但是不要说我没有警告你!
为了完全透明,BakedGoods由您自己维护:)。