本地存储出错 – NS_ERROR_FILE_CORRUPTED – firefox
我一直在使用Web应用程序,而且我正在使用本地存储。 但对于一些Firefox用户,我注意到他们遇到以下错误:
NS_ERROR_FILE_CORRUPTED:组件返回失败代码:0x8052000b(NS_ERROR_FILE_CORRUPTED)[nsIDOMStorage.setItem]
当它调用函数时:
function setLocalStorageItem(key, value){ localStorage.setItem(key, JSON.stringify(value)); }
这是一种避免这种错误的方法吗?
这是一个浏览器级别的错误:您可能没有做任何错误导致此错误。 浏览器(或它使用的SQLite库)要么做错了,要么由于硬件问题导致文件处于无效状态。
除了加入Firefox开发团队并使浏览器的存储系统更具故障能力之外,您无法真正防止此问题。 似乎没有任何方法可以从此错误中恢复数据,因此您需要做的是检测此错误并告诉用户如何根据此MDNpost吹走其浏览器存储:
try { setLocalStorageItem(key, value); } catch(e) { if(e.name == "NS_ERROR_FILE_CORRUPTED") { showMessageSomehow("Sorry, it looks like your browser storage has been corrupted. Please clear your storage by going to Tools -> Clear Recent History -> Cookies and set time range to 'Everything'. This will remove the corrupted browser storage across all sites."); } }
请注意, catch
块应validation错误是否为NS_ERROR_FILE_CORRUPTED
错误。 我认为我对e.name
检查是正确的,但你应该自己validation一下。
操作系统崩溃后,Firefox配置文件文件夹中的文件可能已损坏并导致非function性网站(在我的案例中具有讽刺意味的是Firefox市场)。 这里, webappsstore.sqlite
受到了影响。
用户@Oli在Ask Ubuntu上表示
Firefox将其HTML5数据存储在名为webappsstore.sqlite的文件中。 这位于您的个人资料目录中,潜伏在〜/ .mozilla / firefox / ….默认/(取决于您的个人资料被调用的地方)。
移开它并重新启动Firefox,一切都将恢复生机。
更多: https : //developer.mozilla.org/en/dom/storage
如果删除/移出您的个人资料文件夹,Firefox会构建一个新的,已清理的webappsstore.sqlite
文件。 为我工作。
可在此处访问有关在何处查找配置文件文件夹的信息 。
如果这个问题刚刚出现在我们的客户之一。
完全删除history
(我猜这是重要的部分) offline website data
解决了这个问题。
(Firefox版本40.0.3 )
不确定这是否有帮助,但我在Jira上遇到了这个问题。 我重新启动了Firefox,禁用了插件,并对Jira进行了操作。 然后我停止了Firefox,并在启用Addons的情况下重新启动它,它再次运行。 我不知道为什么这样有效:)我使用的是Firefox开发者版48.0a2(2016-05-24)
- HTML5“必需”validation未在Mozilla Firefox中显示错误消息
- 如何在Firefox 30上调试Greasemonkey脚本?
- 当使用async:false进行ajax调用时,IE7会挂起
- jQuery的$ .ajax URL编码问题
- JavaScript / JQuery与SerialPort / COM1通信
- 如何使用jQuery将值记录到Firebug控制台?
- Firefox上的JavaScript TinyMCE / jQuery竞争条件
- 在Firefox中未发送Ajax请求未知错误
- jQuery与XML命名空间的区别以及Opera和Firefox之间的xhr.responseXML