我在内部应用程序中以非常基本的方式使用 localStorage。它只存储一个简单的字符串值“最新”或“最旧”:
localStorage.setItem('sortOrder', val)
但由于某些原因,某些用户在 Firefox 中抛出以下错误:
Component returned failure code: 0x80630002 (NS_ERROR_STORAGE_IOERR) [nsIDOMStorage.getItem]
Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMStorage.getItem]
IOERR 在数百个页面加载中每天大约发生 125 次,而 FAILURE 仅发生 5 次左右。
我找到了 https://bugzilla.mozilla.org/show_bug.cgi?id=700841 ,但我们的用户都没有安装任何扩展。
除了 localStorage 的这个包装器之外,Google 没有返回任何特别有用的东西:https://github.com/doochik/SafeLS
我犹豫要不要静静地捕捉所有错误,但没有更多信息,这听起来像是唯一的解决方案......
有没有人了解这些错误的实际含义?有什么想法会导致 localStorage 抛出这些错误吗?
最佳答案
Override automatic cache management 是我在 Firefox 48 下的罪魁祸首:
- 编辑
- 偏好
- 高级
我选择该选项是希望它能减少缓存磁盘的使用,因为它会启用“将缓存限制为 X MB”对话框。
确实如此,但在此过程中也破坏了几个网站...
关于javascript - 在 Firefox 29+ 上使用 localStorage 时出现 IO 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24210558/