- 274
- 0
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>IndexDB</title></head><body></body><script> var db; class DB { db; dataName; config; version constructor(dataName, config = {}, version = 1) { this.dataName = dataName; this.config = config; this.version = version; console.log('new DB'); this.init(); } init() { return new Promise((resolve, reject) => { const dataName = this.dataName; const version = this.version; const config = this.config; const req = indexedDB.open(this.dataName, this.version); req.onupgradeneeded = (event) => { console.log('onupgradeneeded'); const db = event.target.result; // 判断是否存在ObjectStore if (!db.objectStoreNames.contains(dataName)) { // 主键 autoIncrement 自增加 const store = config.keyPath && db.createObjectStore(dataName, { keyPath: config.keyPath, autoIncrement: !!config.autoIncrement }); // 索引 unique 唯一值 config.index && store.createIndex(config.index, config.indexKey, { unique: config.indexUnique }); } } req.onsuccess = (event) => { console.log('onsuccess'); this.db = event.target.result; resolve(this.db); } req.onerror = (error) => { reject(error); } }); } add(data) { return new Promise(async (resolve, reject) => { console.log(this.db); if (!this.db) { await this.init(); } const db = this.db; console.log(this.db); // 这个时候就报错了 const transaction = db.transaction([this.dataName], 'readwrite'); const store = transaction.objectStore(this.dataName); const handle = store.add(data); handle.onsuccess = () => { console.log('新增成功'); db.close(); resolve(true); }; handle.onerror = (error) => { console.log('新增失败', error); db.close(); reject(error); }; }).catch(error => reject(error)); } } const myDB = new DB('myDB'); setTimeout(() => { myDB.add({ id: 1, name: 'name1' }) }, 300);</script></html>
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

