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

时间:2017-09-26 06:01:30

标签: google-chrome indexeddb web-sql

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

2 个答案:

答案 0 :(得分:6)

根据https://www.w3.org/TR/webdatabase/弃用Web SQL。

如果您需要存储未存储在服务器端的结构化客户端特定数据,或者您不希望每次都从服务器请求,则可以使用IndexedDB

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

Here是一个讨论不同网络存储选项的链接。 Here是有关如何将type BarStocks interface { GetVodka() *Vodka GetMartini() *Martini GetBourbon() *Bourbon GetNegroni() *Negroni GetManhattan() *Manhattan } type BaseAttributes struct { ID uuid.UUID Quantity float64 CreatedAt time.Time UpdatedAt time.Time } func (e *BaseAttributes) GetVodka() *Vodka { return nil } func (e *BaseAttributes) GetMartini() *Martini { return nil } func (e *BaseAttributes) GetBourbon() *Bourbon { return nil } func (e *BaseAttributes) GetNegroni() *Negroni { return nil } func (e *BaseAttributes) GetManhattan() *Manhattan { return nil } 用于渐进式网络应用的教程。

答案 1 :(得分:5)

在我们去这里任何地方之前; 请注意 Web SQL数据库

  • 是自2010年11月起已弃用的规范

,不鼓励浏览器供应商支持该技术及其重要意义,任何阅读此技术的人都应理解并实践这一事实。检查here了解更多信息...

现在回到您问题的另一个重要部分,

IndexDB用例以及何时使用?

即;

您可以使用IndexDb存储任何JavaScript类型的数据,例如对象或数组,而无需对其进行序列化。对数据库的所有请求都是异步的,因此在请求完成后您将获得回调。

其他典型但功能强大的用例是;网络可用时在同步数据时必须脱机工作的应用程序。一个著名的例子是Wunderlist,即使离线也可以添加和编辑任务,这些操作将进入同步队列,当网络再次可用时,该队列将被处理并清空。

希望能根据您的措辞回答您的问题