javascript - 如何制作本地离线数据库

标签 javascript html css database offline

我正在使用 HTML、CSS 和 JavaScript 制作待办事项列表应用程序,我认为存储数据的最佳方式是本地数据库。我知道如何使用 localStoragesessionStorage,我也知道如何使用在线 MySQL数据库。但是,这个应用程序必须能够离线运行,并且应该离线存储它的数据。
有没有一种方法可以仅使用 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 我认为 chrome 会最受欢迎。


好吧,我想澄清一下,我问的确实是 How can I do this with JavaScript and HTML 而不是 Is there a way I could do this with just with HTML and JavaScript?。基本上,我想要一种 SQL 数据库,它将其内容保存在用户的机器上而不是在线。

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

最佳答案

我迟到了大约 3 年才回答这个问题,但考虑到当时没有关于可用选项的实际讨论,而且 OP 最终选择的数据库 is now deprecated ,我想我会在这件事上投入我的两分钱。

首先,需要考虑是否真的需要客户端数据库。更具体地说……

  • 您的数据项之间是否需要显式或隐式关系?
  • 查询上述元素的能力如何?
  • 或超过5 MB在太空?

如果您对以上所有问题的回答都是“否”,请使用 localStorage 并避免 WebSQL 和 IndexedDB API 的麻烦。好吧,也许只是后者令人头疼,因为如前所述,前者已被弃用。

否则,就原生客户端数据库而言,IndexedDB 是唯一的选择,因为它是唯一保留在 W3C 标准轨道上的选择。

查看 BakedGoods如果您想利用这些设施中的任何一个,甚至更多,而无需编写低级存储操作代码。有了它,将数据放入客户端支持的第一个遇到的 native 数据库中,例如,非常简单:

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 由这里的这个人维护 :)。

关于javascript - 如何制作本地离线数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16815942/

相关文章:

javascript - 在鼠标悬停时更改映射图像热点的背景

html - 为什么我的输入框阴影没有被重置?

javascript - 如何在用户输入提交后在同一页面打印出表单字段值?

javascript - 数据更改时 Vue 不更新。

javascript - 用于 chrome 扩展的 iFrame 的跨域问题

javascript - 为什么chrome会在这里抛出 "Uncaught Error: NOT_FOUND_ERR: DOM Exception 8"?

javascript - 根据单选框选择更改文本框的值

html - 如何在具有不同左右边距的响应(如自动边距)时获得平滑的 block 宽度而不跳转?

"height:50px"和 "height:auto"之间的 CSS 转换

javascript - JS下拉菜单出现在Image Rotator上