当localStorage的满,会发生什么?(What happens when localStor

2019-06-21 06:56发布

我发现文章关于缓存行为,所以我只能认为这是没有太大的不同,但我想确认。

我已阅读,大多数浏览器有5MB(给予或采取)为localStorage的和我,这将是浏览器的行为intrested?

我明白每一个浏览器的行为diffrently但我intrested大多在Safari,Chrome和Firefox(那些是我认为是浏览器的)。

  • 将浏览器上面提到的从我的网站删除数据,或者会选择“最老”或类似的东西?
  • 请问我的项目被保存在这样的情况下?

而最重要的是:

  • 可以说,我“滥用”的localStorage的和我的网站尝试使用这一切,并在同一页我暂它,并试图挽救更多的,我会得到一个警告将在getItem发生这种情况时返回null或它以某种方式保存在内存中?

  • 如果我尝试并保存较大然后localStorage的尺寸的商品,会发生什么?

    回答:答案可以发现这里

  • 是完全相同的行为可以从sessionStorage的可预期的allegdly应该是一样的吗?

我知道这是一个很大的问题,但我想了解所有的有关的主题,我会心存感激你能回答这个问题的任何部分。

问候。

Answer 1:

首先,一些有用的资源:

  • 网络存储支持测试 -有比较浏览器之间的数据存储配额的表。
  • 简单localStorage的配额测试
  • 的localStorage的浏览器行为摘要
  • W3C规范 -指示用户代理(如浏览器)应该如何行为(包括localStorage的和的sessionStorage)。

在回答你的问题,桌面浏览器往往有每个域5MB的初始最大localStorage的配额。 这可以通过在某些情况下,用户可以调整:

  • 歌剧:歌剧:配置 - >域配额的localStorage
  • 火狐:about:config中 - > dom.storage.default_quota

在Chrome中,似乎没有成为一个方式为用户调整此设置虽然喜欢歌剧,localStorage的数据可以直接使用开发工具编辑每个域。

当您尝试将数据存储在本地存储,浏览器会检查是否有当前域足够的剩余空间。 如是:

  • 的数据被存储,如果一个相同的键已存在覆盖值。

如果不:

  • 该数据不存储,不覆盖现有数据。
  • 一个QUOTA_EXCEEDED_ERR抛出异常。

在这种情况下, getItem(key)将返回成功被保存,如果任何一个值。

(Opera是,它显示一个对话框给用户为当前域增加的存储空间的选择稍有不同。)

需要注意的是的sessionStorage与localStorage的是相同的存储对象的两种实现这样他们的行为是相似的,错误处理是一样的。



文章来源: What happens when localStorage is full?