Google chrome IndexedDB刷新到Chrome上的磁盘
我面临着Chrome上IndexedDB的问题,一旦事务返回成功写入,我就会重新加载页面 问题是,有时数据在重新加载后无法反映。我可以通过在重新加载之前提供大约100毫秒的超时来解决这个问题,这让我相信数据不会每次都刷新到磁盘 Firexox有一个可以确保在返回成功调用之前将数据刷新到磁盘上的功能,但在Chrome上似乎找不到类似的功能。有什么建议吗 这是我的插入代码:Google chrome IndexedDB刷新到Chrome上的磁盘,google-chrome,indexeddb,Google Chrome,Indexeddb,我面临着Chrome上IndexedDB的问题,一旦事务返回成功写入,我就会重新加载页面 问题是,有时数据在重新加载后无法反映。我可以通过在重新加载之前提供大约100毫秒的超时来解决这个问题,这让我相信数据不会每次都刷新到磁盘 Firexox有一个可以确保在返回成功调用之前将数据刷新到磁盘上的功能,但在Chrome上似乎找不到类似的功能。有什么建议吗 这是我的插入代码: const data = {type: type, value: value}; const objectStore = S
const data = {type: type, value: value};
const objectStore = StorageService.db.transaction(['localData'], 'readwrite').objectStore('localData');
// readwriteflush doesn't work in chrome
// const objectStore = StorageService.db.transaction(['localData'], 'readwriteflush').objectStore('localData');
const requestSet = objectStore.put(data);
requestSet.onerror = function (event) {
alert('Error in saving data locally');
};
requestSet.onsuccess = function (event) {
console.log('Data was successfully saved locally: ' + type);
if (callback != undefined) {
callback();
}
};
回调具有location.reload='/'代码>在其中执行(以及其他一些事情),因此在onsuccess返回后重新加载页面
重新加载页面后,我无法通过代码和开发人员工具在IndexedDB存储上看到任何数据。但是,这种情况并不总是发生,我观察到,只有当数据比平时大时才会发生这种情况。在请求时触发的“成功”并不表示事务已成功提交。由于单独的失败请求(例如,冲突的add调用)、I/O错误或断电等原因,事务稍后可能会失败
您需要等待在事务中触发“complete”事件。在触发“完成”事件之前,Chrome会刷新到磁盘。请发布与存储您希望显示的数据相关的代码,以及与读取您希望在之后找到的数据相关的代码reload@Josh希望这个编辑有帮助,请忍受我,因为这是我的第一篇文章,让我知道如果你需要任何额外的信息。