什么时候应该使用 Websql 和 IndexedDB? [关闭]
Posted
技术标签:
【中文标题】什么时候应该使用 Websql 和 IndexedDB? [关闭]【英文标题】:When should I use Web SQL verus IndexedDB? [closed] 【发布时间】:2018-03-07 05:29:49 【问题描述】:最近,我遇到了浏览器提供的 Web SQL 和 IndexedDB API。 Web SQL 和 IndexedDB 的用例是什么?什么时候应该使用其中一个?
【问题讨论】:
websql 已弃用 在这种情况下,请告诉我一些 IndexedDB 的用例以及我们应该在哪里使用它? @乔什 当您想在浏览器中存储数据,并希望使用可以轻松查询的对象集合以及使用localStorage
不够的地方
【参考方案1】:
https://www.w3.org/TR/webdatabase/ 不推荐使用 Web SQL。
如果您需要存储未存储在服务器端的结构化客户端特定数据,或者您不想每次都从服务器请求,则可以使用IndexedDB
。
与localStorage
不同,IndexedDB
是异步的,因此性能更高。它支持索引,从而比localStorage
更有效地查询,localStorage
只是一个键值存储。但是,如果您的需求很简单,localStorage
可能是更好的选择。
Here 是一个讨论不同网络存储选项的链接。
Here 是关于如何将 IndexedDB
用于渐进式 Web 应用的教程。
【讨论】:
IndexedDB 应该更高效:nolanlawson.com/2015/09/29/…【参考方案2】:为什么不使用 Web SQL?
自 2010 年 11 月起,Web SQL 数据库规范已被弃用。不鼓励浏览器供应商支持这项技术,阅读本文的任何人都必须了解这一点,这一点很重要。你可以read more about Web SQL on its Wikipedia page。现在回到问题的另一个重要部分。
何时使用 IndexedDB API?
您可以使用 IndexedDB 存储任何 javascript 类型的数据,例如对象或数组,而无需对其进行序列化。针对数据库的所有请求都是异步的。浏览器的实现允许您设置成功或错误发生时的回调。此实现的现代抽象允许您改用 Promise。
IndexedDB 的主要用例之一是创建一个离线数据库,一旦在线,它将与实际数据库同步。这允许应用程序继续离线工作并保留过去的重新加载。现在已死的famous example of this is Wunderlist,即使在离线时也可以添加和编辑任务。这些操作进入一个同步队列,当网络再次可用时,该队列被处理并清空。这就是许多待办事项列表应用程序在离线时的工作方式。
【讨论】:
以上是关于什么时候应该使用 Websql 和 IndexedDB? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章