如果用户在多个选项卡中打开Web应用程序的多个实例,则可以通过注册localStorage
事件侦听器向任何实例通知任何其他实例所做的storage
更改。接收这种通知的标签然后可以作出反应,例如根据更改更新UI。
索引数据库似乎没有为此类通知提供类似方便的机制。是否必须使用localStorage
来发送"发送"每当对索引数据库进行更改时,都会通知其他选项卡?唯一的另一种选择可能是民意调查,这显然不如storage
事件。
答案 0 :(得分:14)
目前没有为Indexed DB定义的“观察者”API。但是,它位于功能请求列表中,Mozilla和Google都有类似的提案。
https://github.com/w3c/IndexedDB/issues/51
这就是说:是的,你需要提出一些自定义的交叉标签通信机制,例如轮询,存储事件,设置MessageChannel链接(Chrome),BroadcastChannel(Firefox)或使用服务工作者作为客户之间的接力。
NEWS FLASH!
Chrome有一个实验性Indexed DB Observers API。您需要使用--enable-experimental-web-platform-features
运行chrome才能使用它,因此它在生产中无用。我们很乐意收到反馈意见 - 提交bugs on the github repo。
答案 1 :(得分:1)
更新