问题描述
我知道这几乎是不可能的,但我心中有一个问题。
如果 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/