什么时候应该使用Web SQL而不是IndexedDB?[已关闭]

lnlaulya  于 2022-12-09  发布在  IndexedDB
关注(0)|答案(2)|浏览(208)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以使用事实与引用来回答.

两年前就关门了。
Improve this question
最近,我遇到了浏览器提供的Web SQL和IndexedDB API。Web SQL和IndexedDB的用例是什么?什么时候应该优先使用其中一个?

xpszyzbs

xpszyzbs1#

根据https://www.w3.org/TR/webdatabase/,不建议使用Web SQL。
如果您需要存储结构化的客户端特定数据,而这些数据没有存储在服务器端,或者您不希望每次都从服务器请求,则可以使用IndexedDB
localStorage相反,IndexedDB是异步的,因此性能更高。它支持索引,因此比localStorage(只是一个键值存储)的查询效率更高。但是,如果您的需求很简单,localStorage可能是更好的选择。
Here是一个关于不同web存储选项的链接。Here是一个关于如何将IndexedDB用于渐进式web应用的教程。

yx2lnoni

yx2lnoni2#

为什么不是Web SQL?

Web SQL数据库规范自2010年11月起已被弃用。我们不鼓励浏览器供应商支持此技术,阅读本文的任何人都必须了解这一点。您可以read more about Web SQL on its Wikipedia page。现在回到您问题的另一个重要部分。

何时使用IndexedDB API?

您可以使用IndexedDB来储存任何JavaScript类型的数据,例如对象或数组,而不需要序列化它。所有对数据库的要求都是异步的。浏览器的实作允许您设定成功或错误发生时的回呼。这个实作的现代抽象允许您改用promise。
IndexedDB的一个主要用例是创建一个脱机数据库,该数据库在联机后将与实际数据库同步。这允许应用程序在脱机时继续工作保持过去的重载。一个现已停用的famous example of this is Wunderlist、即使在脱机状态下,您也可以添加和编辑任务。2这些操作将进入一个同步队列,当网络再次可用时,该队列将被处理并清空。这就是许多待办事项列表应用程序脱机时的工作方式。

相关问题