当本地/会话存储已满时会发生什么?

问题描述

我知道这几乎是不可能的,但我心中有一个问题。

如果 Angular Web 应用程序中的所有 Web 存储(本地/会话)已满,Web 应用程序的行为会是什么?

它会影响网络应用程序的性能吗?如果是,那么它将如何影响?

应用程序在以下浏览器 chrome、firefox 和 Opera 中将如何反应?

我正在阅读一篇讨论会话和本地存储的博客,但我没有在那里找到答案。 (https://krishankantsinghal.medium.com/local-storage-vs-session-storage-vs-cookie-22655ff75a8)

解决方法

如果在您尝试向其添加内容时存储已满,根据 the specification,添加新/更新项目的方法必须抛出 QuotaExceededError。因此,如果存储空间已满,您的应用/页面将正常运行,但如果它尝试添加任何内容,则该操作将失败并显示错误。

来自该链接:

setItem(key,value) 方法必须首先检查具有给定 key 的键/值对是否已经存在于与对象关联的列表中。

如果没有,则必须将新的键/值对添加到列表中,使用给定的 key 并将其值设置为 value。 >

如果给定的key确实存在于列表中,并且它的值不等于value,那么它的值必须更新为value em>。如果它之前的值等于 value,那么该方法什么都不做。

如果无法设置新值,则该方法必须抛出 QuotaExceededError 异常。 (例如,如果用户禁用了站点的存储或超出了配额,则设置可能会失败。)

(我的重点)

,

对此有一个特殊的例外:超出配额。 你可以在这里阅读它:https://chrisberkhout.com/blog/localstorage-errors/

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...