升级IndexedDB版本时使用多个连接

时间:2014-08-27 16:22:18

标签: indexeddb

当其中一个连接进行版本更改时,保持多个连接是否可行?

我正在尝试为每个ObjectStore建立一个连接,在打开连接时创建ObjectStore,以便每个连接只对其ObjectStore执行事务。

我了解如何添加新的ObjectStore和更改版本(请参阅How to create multiple object stores in IndexedDBCan you ever alter the structure of an indexedDB database after it has been opened in firefox?),并且在更改版本时必须关闭每个连接。

但是,我不确定连接是否自动重新连接,或者是否有某些事件正在监听升级完成,或者我是否必须手动完成。

我担心在打开数据库的任何事务之前我必须检查它,如果它已关闭,请打开它。不过,我想知道是否有更好的方法。此外,我不是要求代码,只是一些指导方针,参考或想法。

提前致谢。

1 个答案:

答案 0 :(得分:1)

是的,所有连接都有相同的版本。

打开连接后无法更改版本。 (旧的规范可以,但不能了)。

如果您失去连接,它将不会自动连接。事实上,除非你关闭它,否则连接不会丢失。

如果在存在其他连接时打开与较新版本的连接,将通过onversionchange event通知现有连接 - 并且现有连接必须关闭连接,以便继续新连接。