【问题标题】:IO Error when using localStorage on Firefox 29+?在 Firefox 29+ 上使用 localStorage 时出现 IO 错误?
【发布时间】:2014-08-04 07:44:14
【问题描述】:

我在内部应用程序中以非常基本的方式使用 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 抛出这些错误吗?

【问题讨论】:

  • 在 sortOrder 之后可能缺少一个 ':localStorage.setItem('sortOrder', val)
  • 只是我的错字,不是复制/粘贴。我会改正的。
  • 我认为在“try/catch”之外没有合适的解决方法。我在每天有 10 万用户的页面上使用 sessionStorage,并且在我的日志中没有遇到任何这些错误。基本上,我将我的测试包装在 try catch 周围进行存储,否则使用 cookie。在不同的浏览器上 - 您可能会遇到问题...当 cookie 被禁用并且您正在使用存储或在私有模式下运行等时...
  • NS_ERROR_STORAGE_IOERR 真的只是SQLITE_IOERR,所以这听起来像是您的一个或多个用户的文件系统损坏、文件系统已满或损坏、访问被拒绝或锁定webappstore.sqlite
  • 我在本地安装 MediaWiki 时遇到了同样的错误。删除 Firefox 配置文件文件夹中的 webappstore.sqlite 并因此让 Firefox 强制重建它为我解决了这个问题。请在stackoverflow.com/a/26371494/1696030 上查看我的扩展答案

标签: javascript html firefox local-storage


【解决方案1】:

覆盖自动缓存管理是我在 Firefox 48 下的罪魁祸首:

  • 编辑
  • 首选项
  • 高级

我选择该选项是为了减少缓存磁盘的使用,因为它启用了“将缓存限制为 X MB”对话框。

确实如此,但在此过程中也破坏了几个网站...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-08
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    相关资源
    最近更新 更多