我一直在使用 Web 应用程序,并且正在使用本地存储。但是对于某些 Firefox 用户,我注意到他们遇到了以下错误:
NS_ERROR_FILE_CORRUPTED:组件返回失败代码:0x8052000b (NS_ERROR_FILE_CORRUPTED) [nsIDOMStorage.setItem]
当它调用函数时:
function setLocalStorageItem(key, value){
localStorage.setItem(key, JSON.stringify(value));
}
这是避免此错误的方法吗?
原文由 Juan Jardim 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是浏览器级别的错误:您可能没有做错任何事情导致此错误。浏览器(或它使用的 SQLite 库)要么做错了什么,要么文件由于硬件问题而处于无效状态。
你无法真正避免这个问题,除非加入 Firefox 开发团队并使浏览器的存储系统更具容错性。似乎没有任何方法可以从此错误中恢复数据,因此您要做的就是检测此错误并根据 此 MDN 帖子 告诉用户如何清除他们的浏览器存储:
请注意,
catch
块应验证错误是NS_ERROR_FILE_CORRUPTED
错误。我认为我对e.name
的检查是正确的,但你应该自己验证一下。