概念 | 说明 |
|---|---|
数据库(Database) | 顶层存储容器,每个数据库有名称和版本号 |
对象仓库(Object Store) | 数据表,存储对象(键值对) |
索引(Index) | 类似 SQL 的索引,提高查询效率 |
事务(Transaction) | 原子操作单元,支持 readonly 和 readwrite |
键(Key) | 唯一标识对象的属性,可自动生成 |
const request = indexedDB.open("MyDatabase", 1);request.onupgradeneeded = function(event) { const db = event.target.result; // 创建对象仓库 const store = db.createObjectStore("users", { keyPath: "id", autoIncrement: true }); // 创建索引 store.createIndex("name", "name", { unique: false });};request.onsuccess = function(event) { const db = event.target.result; console.log("数据库打开成功");};request.onerror = function(event) { console.error("数据库打开失败:", event.target.errorCode);};php490 Bytes© 菜鸟-创作你的创作const transaction = db.transaction("users", "readwrite");const store = transaction.objectStore("users");store.add({ name: "Alice", age: 25 });php144 Bytes© 菜鸟-创作你的创作const request = store.get(1); // 根据主键查询request.onsuccess = function(event) { console.log(request.result);};php111 Bytes© 菜鸟-创作你的创作const request = store.put({ id: 1, name: "Alice", age: 26 });php61 Bytes© 菜鸟-创作你的创作store.delete(1); // 删除主键为 1 的数据php31 Bytes© 菜鸟-创作你的创作store.openCursor().onsuccess = function(event) { const cursor = event.target.result; if(cursor) { console.log(cursor.value); cursor.continue(); }};php162 Bytes© 菜鸟-创作你的创作"readonly":只读事务"readwrite":可读写事务transaction.onerror = function(event) { console.error("事务失败:", event.target.error);};php88 Bytes© 菜鸟-创作你的创作// 存储图片const imgTransaction = db.transaction("images", "readwrite");const imgStore = imgTransaction.objectStore("images");imgStore.add({ id: 1, data: blob });php161 Bytes© 菜鸟-创作你的创作onupgradeneeded 做数据迁移💡 总结
https://www.52runoob.com/archives/5967
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。