当其中一个连接进行版本更改时,保持多个连接是否可行?
我正在尝试为每个ObjectStore建立一个连接,在打开连接时创建ObjectStore,以便每个连接只对其ObjectStore执行事务。
我了解如何添加新的ObjectStore和更改版本(请参阅How to create multiple object stores in IndexedDB或Can you ever alter the structure of an indexedDB database after it has been opened in firefox?),并且在更改版本时必须关闭每个连接。
但是,我不确定连接是否自动重新连接,或者是否有某些事件正在监听升级完成,或者我是否必须手动完成。
我担心在打开数据库的任何事务之前我必须检查它,如果它已关闭,请打开它。不过,我想知道是否有更好的方法。此外,我不是要求代码,只是一些指导方针,参考或想法。
提前致谢。
答案 0 :(得分:1)
是的,所有连接都有相同的版本。
打开连接后无法更改版本。 (旧的规范可以,但不能了)。
如果您失去连接,它将不会自动连接。事实上,除非你关闭它,否则连接不会丢失。
如果在存在其他连接时打开与较新版本的连接,将通过onversionchange
event通知现有连接 - 并且现有连接必须关闭连接,以便继续新连接。