1 .open(dbName,1) 版本号可以省略
javascript
let dbName = 'hist-data-1d'
const request = indexedDB.open(dbName); // 如果你不知道数据库的版本号,可以省略第二个参数,这样 indexedDB 会默认为你打开最新版本的数据库,因为版本号总是自增长的
2 第一次创建表 或数据库版本变化时创建表
javascript
// 数据库版本变化时创建表
request.onupgradeneeded = event => {
for (let symbol of symbolList) { // for (let symbol in symbolList) 循环打印出来的是 symbolList 中每个元素的索引
symbol = symbol.replace('-', '_').toLowerCase();
const db = event.target.result;
db.createObjectStore(symbol);
}
};
3 指定表 添加数据 key value
javascript
request.onsuccess = event => {
const db = event.target.result;
const transaction = db.transaction([tablie], 'readwrite');
const objectStore = transaction.objectStore(tablie);
let key = 'key'
const request = objectStore.add(data, key);
}
4 add 是累加数据 put 是只有一条数据
javascript
const request = objectStore.add(data, key);
ps
ps1. 如果使用 add
方法添加的数据中 key
已经存在于对象仓库中,则会抛出 ConstraintError
错误
ps2 .需要更新已经存在的数据,你应该使用 put
方法而不是 add
方法