我在使用indexedDB时遇到了一个奇怪的问题。每当我安装另一个扩展时,有时indexedDB会花费很多时间将数据写入db。我试图通过使用indexedDB API和基于indexedDB的库来解决这个问题,但似乎没有任何工作。
下面是我使用的代码
function updateRecord({
sessionId,
...record
}) {
return new Promise(async(resolve, reject) => {
try {
console.log(
'%c Inside update record ',
'background: #222; color: #bada55'
);
const dbPromise = await idb.openDB('testbuddyExtension', 1, {
upgrade(db) {
const store = db.createObjectStore('testbuddy', {
keyPath: 'sessionId',
});
store.createIndex('keyIndex', 'tabId');
},
});
const existingRecord = await dbPromise.get('testbuddy', sessionId);
const updatedPayload = {
...record,
...(existingRecord ? existingRecord : {}),
};
await dbPromise.put('testbuddy', { ...updatedPayload,
sessionId
});
console.log(
'%c Everything is now done! ',
'background: #222; color: #bada55'
);
resolve(true);
} catch (error) {
console.log('%c Error found! ', 'background: #222; color: #bada55');
console.log({
error
});
reject(false);
}
});
}
here是一个视频,可能会帮助你理解。而且,它并不是因为我一次写了很多数据而变慢的。我曾经使用相同的脚本一次写下兆字节的数据。
1条答案
按热度按时间mqxuamgl1#
这个问题现在解决了。正如你在视频中看到的,当我启用另一个扩展时,我的扩展出现了一些错误。这是因为每当启用扩展时,我都会运行一些脚本。我忘了说分机号了。
这是应该做的。