我正在使用HTML,CSS和JavaScript制作待办事项列表应用程序,我认为存储数据的最佳方式是本地数据库。我知道如何使用localStorage
和sessionStorage
,我也知道如何使用在线MySQL数据库。但是,此应用程序必须能够脱机运行并且应该脱机存储其数据
有没有办法只用HTML和JavaScript来做到这一点?
回应评论:
“你说你知道如何使用
localStorage
......所以这似乎是什么问题?”
@Lior我所知道的localStorage
是你可以存储单个结果作为变量,而我希望存储一个包含不同列的行,其中包含有关该对象的不同数据。但是,localStorage
可以保存一个对象,如果是这样的话,它会用通常的对象表示法引用吗?
任何实施都可能取决于您的用户更喜欢使用哪种浏览器。
@paul我认为chrome最受欢迎。
好的,我想澄清我所问的确实是我如何使用JavaScript和HTML 而不是我是否有办法用HTML和JavaScript的?的。基本上,我想要一种SQL数据库,它可以将其内容保存在用户的机器上而不是在线。
什么解决了我的问题是使用WebDB或WEBSQL(我认为它被称为类似的东西)。
答案 0 :(得分:11)
我回答这个问题已经晚了大约3年,但考虑到当时没有关于可用选项的实际讨论,以及OP最终选择is now deprecated的数据库,我想我和我#39;在这件事上投入我的两分钱。
首先,需要考虑一个人是否真的需要客户端数据库。更具体地说......
如果你的回答是"否"对于上述所有内容,请使用localStorage,避免出现WebSQL和IndexedDB API的麻烦。好吧,也许只是后者的头痛,因为如前所述,前者已被弃用。
否则,就本机客户端数据库而言,IndexedDB是唯一的选择,因为它是唯一一个保留在W3C标准轨道上的数据库。
如果您想利用这些设施中的任何一个,请查看BakedGoods,而不必编写低级存储操作代码。有了它,例如,将数据放在客户端支持的第一个遇到的本机数据库中就像这样简单:
bakedGoods.set({
data: [{key: "key1", value: "val1"}, {key: "key2", value: "val2"}],
storageTypes: ["indexedDB", "webSQL"],
//Will be polyfilled with defaults for equivalent database structures
optionsObj: {conductDisjointly: false},
complete: function(byStorageTypeStoredKeysObj, byStorageTypeErrorObj){}
});
哦,为了完全透明,BakedGoods由这个人维护在这里:)。