我正在使用
HTML,CSS和
JavaScript制作一个待办事项列表应用程序,我认为我存储数据的最佳方式是本地数据库.我知道如何使用localStorage和sessionStorage,我也知道如何使用在线
MySQL数据库.但是,此应用程序必须能够脱机运行,并应将其数据脱机.
有没有办法只用HTML和JavaScript呢?
有没有办法只用HTML和JavaScript呢?
回应评论:
“You said you know how to use
localStorage
… so what seems to be the problem?”
@Lior我所知道的关于localStorage的内容是,您可以将单个结果存储为变量,而我希望存储一行包含不同的列,其中包含有关对象的差异数据.但是,localStorage可以保存一个对象,如果是这样,它会引用通常的对象符号?
Any implementation will probably depend on what browser(s) your users prefer to use.
@paul我认为镀铬将是最受欢迎的.
好的,我想澄清一点,我正在问的是我如何用JavaScript和HTML来做这件事,而不是有办法只用HTML和JavaScript呢?基本上,我想要一种类型的sql数据库,将其内容保存在用户的机器上,而不是在线.
解决方法
我在回答这个问题已经3年了,但是考虑到当时没有关于可用选项的实际讨论,而OP数据库最终选择了
is now deprecated,我想我会把我的两分钱物.
首先,需要考虑一个实际需要一个客户端数据库.进一步来说…
>您需要在数据项之间建立明确或隐含的关系吗?
>如何查询所述项目的能力?
>或超过5 MB在太空?
如果您对所有上述内容回答“否”,请使用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由这个家伙在这里保持:).