【问题标题】:Is anyone else receiving a QUOTA_EXCEEDED_ERR on their iPad when accessing localStorage?访问 localStorage 时,还有其他人在他们的 iPad 上收到 QUOTA_EXCEEDED_ERR 吗?
【发布时间】:2011-02-05 21:59:46
【问题描述】:

我有一个用 JavaScript 编写的 Web 应用程序,它可以通过 Safari 和 iPhone 在桌面上成功运行。

我们正在考虑将此应用程序移植到 iPad 上,但遇到了一个问题,即在设备上的 localStorage 中存储相对少量的数据时会看到 QUOTA_EXCEEDED_ERR。我知道这个错误意味着什么,但我认为我没有存储那么多数据。

还有其他人在做类似的事情吗?看到/没有看到这个问题?

凯文...

【问题讨论】:

  • 经过进一步调查,我真的不明白为什么我会收到这个错误,我正在使用的存储可能是

标签: web-applications ipad


【解决方案1】:

我遇到了同样的问题,似乎在设置之前删除密钥解决了它。

function setkey(key, val){
  sessionStorage.removeItem(key);
  sessionStorage.setItem(key, val);
}

【讨论】:

  • 谢谢你,你帮我省了很多麻烦!
  • 如果这不起作用,请查看下面的私人模式答案。
【解决方案2】:

这不是bug,用户可以去那里iphone的设置,然后选择safari。有一个选项可以设置私人浏览。默认是开启的,所以存储工作,但有些禁用它。所以你应该在你的应用程序中创建一条消息,告诉主题启用它。

【讨论】:

  • 谢谢,这对我有用。这是有道理的,如果打开隐私浏览,则不应存储任何内容。
  • 这对我来说是另一种方式:隐私浏览关闭,localStorage 工作;私人浏览,localStorage 不起作用。版本 5.1.1
  • @Mr.TA 我遇到了同样的问题。 caniuse.com/#feat=namevalue-storage 在“备注”部分提到了这个问题。
【解决方案3】:

如果你在设置之前使用删除存储数据的方式 - 在某些浏览器中会很慢。删除数据比设置数据慢 1.5 倍(字符串大约 50 个符号)。 在 FF 3.6 (Ubuntu) 上尝试过 - 浏览器在 SqlLite 上运行速度非常慢。 因此,仅针对 iPad 设备执行此 hack。

【讨论】:

    【解决方案4】:

    我在运行 os 版本 3.something 的 iPad 上遇到了同样的问题(抱歉,我记得确切的版本)。我把操作系统升级到4.2.1,问题解决了!

    似乎是 Apple 实施本地存储中的一个错误,该错误已得到修复。

    【讨论】:

      【解决方案5】:

      嘿,我遇到了同样的问题。我在 iPad 上尝试了我的应用程序,它吐出了这个错误。我可以在我的 Safari 浏览器上复制它的唯一方法是,如果我将我的计算机置于私人模式...

      我认为只要它处于私有模式,localStorage 就会变成只读的。所以我仍然没有解决方案,但如果有帮助,我很乐意听到。

      【讨论】:

      • 我发现我确实可以在 localStorage 中存储一些数据,但仅此而已。所以我不确定这是一个只读问题。
      • 我的问题是开启了私人模式。将其关闭,localStorage 将再次可用。版本 5.1.1
      猜你喜欢
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多