概述版本迁移需要独占连接。本文给出冲突检测与事件处理,避免升级阻塞。连接与事件处理function openDB(name, version, upgrade) { return new Promise((resolve, reject) => { const req = indexedDB.open(name, version); req.onupgradeneeded = e => upgrade && upgrade(req.result, e.oldVersion, e.newVersion); req.onsuccess = () => { const db = req.result; db.onversionchange = () => { db.close(); /* 提示用户刷新或自动重连 */ }; resolve(db); }; req.onerror = () => reject(req.error); }); } async function ensureUpgraded() { const db = await openDB('appdb', 2, (db, oldV, newV) => { if (!db.objectStoreNames.contains('items')) db.createObjectStore('items', { keyPath: 'id' }); }); db.close(); }

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部
2.061385s