我在Chrome的 IndexedDB 数据文件中存在重复性问题。
“ AppData /本地/ Google / Chrome / Userdata /默认/IndexedDB/site/000003.log”。
我只能在数据库中看到一次记录,但是如果我在数据文件中搜索记录,则发现它与更新记录一样多。我在做什么错了?
这是示例代码:
var firstLoad = false,
db = null;
openDb = () => {
return new Promise((resolve) => {
let req = window.indexedDB.open("testDB", 1);
req.onsuccess = (e) => {
db = e.target.result;
resolve();
};
req.onupgradeneeded = (e) => {
firstLoad = true;
db = e.target.result;
db.createObjectStore("testStore", { keyPath: "id", autoIncrement: true });
};
});
};
insertRecord = (record) => {
return new Promise((resolve) => {
let tx = db.transaction(["testStore"], "readwrite"),
store = tx.objectStore("testStore");
tx.oncomplete = () => {
resolve();
};
store.add(record);
});
};
updateRecord = () => {
return new Promise((resolve) => {
let tx = db.transaction(["testStore"], "readwrite"),
store = tx.objectStore("testStore"),
req = store.get(1);
tx.oncomplete = () => {
resolve();
};
req.onsuccess = (e) => {
store.put(e.target.result);
}
});
};
testIt = async () => {
await openDb();
if (firstLoad)
await insertRecord({id:1,name:"record"});
updateRecord();
};
testIt();