未捕获的 DOMException:无法在“存储”上执行“setItem”:设置“domains”的值超出配额

问题描述 投票:0回答:3

当我打开控制台时,每次在 chrome 中都会显示此错误。

未捕获的 DOMException:无法在“存储”上执行“setItem”:设置 “域名”的值超出了配额。在 HTMLScriptElement.a.onload (https://dl.metabar.ru/static/storage/js/storage.min.js version=201804162002:1:6177) a.加载....

这是为什么?

javascript wordpress google-chrome local-storage domexception
3个回答
11
投票

实际上您的存储空间已满,很可能是由于您的某些浏览器扩展而导致的。


5
投票

我已经清除了浏览器的本地存储。打开开发人员工具并从“应用程序”->“存储”->“本地存储”->“全部清除”中清除..

我重新运行了该应用程序,它成功了。

-------------- 已更新以处理生产场景 ---------------

如您所知,我们不能要求用户执行此操作。所以,如果你想在客户端的机器上处理这个问题。我们可以执行这些操作中的任何一个。

localstorage
每个域有 5mb,所以让我们以最好的方式使用它,使用以下方法:

  • 减少数据大小并使用较小的键名称
  • 实现数据清理逻辑:删除最近最少使用的数据。根据功能对应用程序的重要性来确定数据删除逻辑的优先级。
  • 只要浏览器选项卡打开,就尝试使用会话存储来存储所需的项目。
  • 尽可能尝试使用 IndexedDb。
  • 在代码中实现错误处理 if
    QuotaExceededError

0
投票

由于您的存储空间已满,您可以通过从浏览器中清除它来消除此错误。但这种方法不会让您的应用程序在生产环境中生存。最好将自己转移到 IndexedDB(带或不带 localForage)。

https://github.com/localForage/localForage

© www.soinside.com 2019 - 2024. All rights reserved.