最近我遇到了浏览器提供的Web SQL和IndexedDB。我想了解可以使用它们的用例。
答案 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数据库
,不鼓励浏览器供应商支持该技术及其重要意义,任何阅读此技术的人都应理解并实践这一事实。检查here了解更多信息...
现在回到您问题的另一个重要部分,
IndexDB用例以及何时使用?
即;
您可以使用IndexDb存储任何JavaScript类型的数据,例如对象或数组,而无需对其进行序列化。对数据库的所有请求都是异步的,因此在请求完成后您将获得回调。
其他典型但功能强大的用例是;网络可用时在同步数据时必须脱机工作的应用程序。一个著名的例子是Wunderlist,即使离线也可以添加和编辑任务,这些操作将进入同步队列,当网络再次可用时,该队列将被处理并清空。
希望能根据您的措辞回答您的问题