Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome IndexedDB刷新到Chrome上的磁盘_Google Chrome_Indexeddb - Fatal编程技术网

Google chrome IndexedDB刷新到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

我面临着Chrome上IndexedDB的问题,一旦事务返回成功写入,我就会重新加载页面

问题是,有时数据在重新加载后无法反映。我可以通过在重新加载之前提供大约100毫秒的超时来解决这个问题,这让我相信数据不会每次都刷新到磁盘

Firexox有一个可以确保在返回成功调用之前将数据刷新到磁盘上的功能,但在Chrome上似乎找不到类似的功能。有什么建议吗

这是我的插入代码:

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希望这个编辑有帮助,请忍受我,因为这是我的第一篇文章,让我知道如果你需要任何额外的信息。