首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当IndexedDb改变时触发的事件?

当IndexedDb改变时触发的事件?
EN

Stack Overflow用户
提问于 2021-02-15 20:51:47
回答 1查看 269关注 0票数 0

我们使用DexieJS作为IndexedDb的包装器,并正在寻找一种方法来确定底层DB模式是否发生了变化。最糟糕的情况是,这是一个用户在使用我们的应用程序的过程中删除一个表或整个DB (不可能吗?当然,但是来吧-用户)。

或者,IndexedDb会记录类似“最后修改”的值吗?如果我们只有这些,我们就能做到这一点。可能的事会更好,尽管.IndexedDb或Dexie支持这样的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-15 22:01:39

模式更改必须在IndexedDB中进行版本升级,并且每当模式被更改时都会触发一个事件"onversionchange“。Dexie在这里描述这个事件:https://dexie.org/docs/Dexie/Dexie.on.versionchange

如果您希望收到table.clear()这样的正常非模式更改的通知,那么您应该尝试支持跨窗口/工作者表观察的最新alpha版本的dexie (3.1.0-字母8)。见3.1.0-字母1的发行说明这篇博客文章。在您的示例中,您可能希望观察整个表上的任何更改。要做到这一点,请使用:

代码语言:javascript
复制
const observable = liveQuery(() => db.yourTable.toArray());

另外还有一个较低级别的事件,如果您希望在不请求数据的情况下得到通知:见本问题评论

请注意,dexie只能观察来自代码的更改,这些代码使用dexie来修改数据。它不会对直接到indexedDB API的更改做出反应,因为DOM中没有这样的原生事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66215243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档