每个浏览器会话只允许一个javascript IndexedDb连接?

kxxlusnw  于 2022-12-09  发布在  IndexedDB
关注(0)|答案(1)|浏览(165)

我发现很难相信一个javascript连接到indexedDb不能建立,关闭,然后重新建立在一个单一的javascript示例/浏览器标签(即没有浏览器页面刷新或关闭当前标签)。但是当我读到像www.example.com这样的规范时https://w3c.github.io/IndexedDB/#close-a-database-connection,它听起来好像是这样的。有没有人幸运地关闭一个indexedDb连接,并重新建立没有关闭浏览器标签或硬页面刷新?如果是,你是怎么做到的?

3vpjnl9f

3vpjnl9f1#

在同一个“会话”中可以打开多个连接(一个接一个地关闭等)(会话是什么意思?)。
例如:

function open(name) {
  return new Promise((resolve, reject) => {
    const request = indexedDB.open(name);
    request.onsuccess = event => resolve(request.result);
    request.onerror = event => reject(request.error);
  });
}

async function main() {
  for (let i = 0; i < 10; i++) {
    console.log('Opening database connection', i);
    const connection = await open('mydb');
    console.log('Database connection %s opened to', i, connection.name);

    // do stuff with the connection here

    console.log('Requesting database connection %s to close eventually', i);
    connection.close();
  }
}

main().catch(console.error);

相关问题