html5 本地存储错误 safari

html5 localstorage error safari

当我在 ios Safari 浏览器中浏览时,我的网站出现此错误:

"QUOTA_EXCEEDED_ERR: DOM Exception 22: An attempt was made to add something to storage that exceeded the quota."

错误在下一行:

localStorage.setItem('abcdf', 'true');

我一直在网络上研究这个问题,并且总是在我处于隐私浏览状态时指出,但在我的情况下,它不是。 我使用的是默认浏览器,而不是隐私浏览。

有什么想法吗?

问题是什么

localStorage 大小被限制为相对较小的大小(最高几 MB)。在 Safari 中,这种异常发生在两种情况下:

  • 在隐私浏览模式下没有 localStorage 访问是允许的所以调用localStorage.set总是会导致这个错误。
  • 在常规浏览中,当超出配额时会发生此异常 - 也就是说,localStorage 包含的内容太多。 Web 浏览器不保证 localStorage
  • 的实际大小

正在修复

除了在客户端存储更少的东西之外,最简单的解决方案是使用类似 IndexedDB 的东西,它有更高的配额。它的性能也更好,因为它执行非阻塞 io。