我们什么时候应该使用Web SQL或IndexedDB?有哪些用例?

Uts*_*nha 9 google-chrome web-sql indexeddb

最近,我遇到了浏览器提供的Web SQL和IndexedDB。我想了解可以使用的用例。

小智 13

每个https://www.w3.org/TR/webdatabase/不推荐使用Web SQL 。

您可以使用IndexedDB,如果你需要存储结构化客户端专用数据您不要在服务器端存储,或者你不想每次都从服务器请求。

与相对localStorageIndexedDB它也是异步的,因此性能更高。它支持索引,从而比localStorage简单的键值存储更有效的查询。但是,如果您的需求很简单,则localStorage可能是一个更好的选择。

是一个讨论不同Web存储选项的链接。 是有关如何IndexedDB用于渐进式Web应用程序的教程。

  • IndexedDB 应该性能更高:https://nolanlawson.com/2015/09/29/indexeddb-websql-localstorage-what-blocks-the-dom/ (2认同)

小智 10

为什么不是 Web SQL?

自 2010 年 11 月以来,Web SQL 数据库规范已被弃用。不鼓励浏览器供应商支持这项技术,阅读本文的任何人都理解这一点很重要。您可以在其 Wikipedia 页面上阅读有关 Web SQL 的更多信息。现在回到问题的另一个重要部分。

何时使用 IndexedDB API?

您可以使用 IndexedDB 存储任何 JavaScript 类型的数据,例如对象或数组,而无需对其进行序列化。对数据库的所有请求都是异步的。浏览器的实现允许您设置成功或错误发生时的回调。对此实现的现代抽象允许您改用承诺。

IndexedDB 的主要用例之一是创建一个离线数据库,一旦在线,该数据库将与实际数据库同步。这允许应用程序在脱机时继续工作保持过去的重新加载。一个现已过时的著名例子是 Wunderlist,您甚至可以在离线状态下添加和编辑任务。这些操作进入一个同步队列,当网络再次可用时,该队列被处理和清空。这就是许多待办事项列表应用程序在离线时的工作方式。