--- title: IndexedDB:事务与版本升级治理 keywords: - IndexedDB - 事务 - 版本升级 - objectStore - 游标 description: 使用 IndexedDB 管理结构化数据,掌握事务与版本升级模式,处理游标与错误治理,提升一致性与可维护性。 tags: - IndexedDB - Web API - objectStore - 事务 - 存储 - 游标 - 版本升级 - 稳定性 categories: - 文章资讯 - 技术教程 --- ## 概述 IndexedDB 提供浏览器端结构化存储与事务模型。通过版本升级创建/迁移对象仓库(objectStore)与索引,使用只读/读写事务进行原子操作。 ## 用法/示例 ```js const req = indexedDB.open('app-db', 3) req.onupgradeneeded = e => { const db = e.target.result if (!db.objectStoreNames.contains('users')) { const store = db.createObjectStore('users', { keyPath: 'id' }) store.createIndex('by_email', 'email', { unique: true }) } } req.onsuccess = () => { const db = req.result const tx = db.transaction(['users'], 'readwrite') const store = tx.objectStore('users') store.put({ id: 1, email: '[email protected]', name: 'A' }) tx.oncomplete = () => db.close() } ``` ```js // 游标遍历 const tx = db.transaction(['users'], 'readonly') const store = tx.objectStore('users') store.openCursor().onsuccess = e => { const cursor = e.target.result if (cursor) { // 处理 cursor.value cursor.continue() } } ``` ## 工程建议 - 在版本升级中进行迁移脚本管理与回滚保护;避免在运行时创建仓库。 - 以事务为边界控制一致性;处理 `onabort/onerror` 并上报失败。 - 对大对象采用分块与引用,结合存储配额与清理策略。 ## 参考与验证 - MDN:IndexedDB — https://developer.mozilla.org/docs/Web/API/IndexedDB_API - web.dev:IndexedDB — https://web.dev/articles/indexeddb

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部