我正在考虑使用dbed.DBs包装器来建立IndexedDB:https://github.com/aaronpowell/db.js
在文档中说:
连接旨在保留,您可以在保持打开状态时执行多项操作。查看/ tests / public / specs文件夹以获取更多示例
然而/ tests / public / specs文件夹不存在。
每次我要执行一组操作时,是否应该打开新连接,还是应该打开一次并尝试在客户端中尽可能长时间地缓存它?
欢呼声, 约旦。
答案 0 :(得分:2)
连接意味着长期存在并重复使用。
以下是the spec关于连接的内容:
打开数据库的行为会创建一个连接。在任何给定时间,可能存在与给定数据库的多个连接。每 connection有一个closePending标志,最初设置为false。
最初创建连接时,它处于打开状态。可以通过多种方式关闭连接。如果连接是 创建连接的GCed或执行上下文将被销毁 (例如,由于用户导航离开该页面), 连接已关闭。连接也可以明确关闭 使用关闭数据库连接的步骤。什么时候连接 如果没有,则closePending标志始终设置为true 已经过了。
IDBDatabase接口表示与数据库的连接。
根据我的经验,使用长期重用的数据库连接遇到的唯一问题是当您通过修改架构触发versionchange
事件时:
只要“versionchange”事务正在运行,就会尝试打开 与同一数据库的更多连接被延迟,以及任何尝试 将使用相同的连接来启动其他事务 在被抛出的例外中。
因此,我个人认为我的库不是为了重用连接。但在大多数情况下,重复使用应该没问题。