如何创建本地脱机数据库

sam*_*dy1 14 html javascript css database offline

我正在使用HTML,CSS和JavaScript制作待办事项列表应用程序,我认为存储数据的最佳方式是本地数据库.我知道如何使用localStoragesessionStorage,我也知道如何使用在线MySQL数据库.但是,此应用程序必须能够脱机运行并且应该脱机存储其数据.
有没有办法只使用HTML和JavaScript来做到这一点?


回应评论:

"你说你知道如何使用localStorage......那么似乎是什么问题?"

@Lior我所知道的localStorage是,你可以将一个结果存储为一个变量,而我希望存储一个包含不同列的行,其中包含有关该对象的不同数据.但是,可以localStorage保存一个对象,如果是这样,它是用通常的对象表示法引用的吗?

任何实现都可能取决于您的用户更喜欢使用哪种浏览器.

@paul我认为chrome最受欢迎.


好的,我想澄清一下,我所问的确实是如何使用JavaScript和HTML实现这一点而不是我有没有办法只用HTML和JavaScript来做到这一点?.基本上,我想要一种SQL数据库,它可以将其内容保存在用户的机器而不是在线.

什么解决了我的问题是使用WebDB或WEBSQL(我认为它被称为类似的东西).

Kev*_*vin 11

我回答这个问题已经晚了大约3年,但考虑到当时没有关于可用选项的实际讨论,并且OP最终选择的数据库现在已被弃用,我想我会投入我的两分钱就此事.

首先,需要考虑一个人是否真的需要客户端数据库.进一步来说...

  • 您是否需要数据项之间的显式或隐式关系?
  • 查询所述项目的能力如何?
  • 或者超过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){}
});
Run Code Online (Sandbox Code Playgroud)

哦,为了完全透明,BakedGoods由这个人维持在这里:).