当localStorage已满时会发生什么?
我发现有关caching行为的文章 ,所以我只能假设它没有太大的不同,但我想确保。
我已经读了,大多数浏览器有5MB(给或拿)localStorage和我是什么感兴趣的浏览器的行为?
我明白每个浏览器的行为不同,但我主要在Safari浏览器,Chrome浏览器和Firefox浏览器(因为那些我认为是浏览器)。
- 上面提到的浏览器会不会从我的网站上删除数据,或者会select“最老的”还是这样的?
- 在这种情况下我的物品会被保存吗?
而最重要的是:
-
比方说,我滥用localStorage和我的网站试图使用它,并在同一页我填补了,并试图保存更多,我会得到一个警告,并会在这种情况下
getItem
返回null或它以某种方式保存在内存中? -
如果我尝试保存大于localStorage大小的项目,会发生什么情况?
回答:可以在这里find答案
-
sessionStorage的预期行为是否可以预期,这应该是相同的?
我知道这是很多问题,但我试图理解所有相关的主题,我会感谢你的答案的任何部分的问题。
问候。
首先,一些有用的资源:
- networking存储支持testing – 有一个比较浏览器之间的数据存储配额的表。
- 简单的localStorage配额testing
- localStorage浏览器行为摘要
- W3C规范 – 指示用户代理(如浏览器)应如何行为(localStorage和sessionStorage)。
在回答你的问题时,桌面浏览器每个域的初始最大localStorage配额为5MB。 在某些情况下,这可以由用户进行调整:
- Opera:opera:config – > Domain Quota对于localStorage
- Firefox:about:config – > dom.storage.default_quota
在Chrome中,虽然像Opera,localStorage数据可以使用开发工具在每个域中直接编辑,但用户似乎没有办法调整此设置。
当您尝试将数据存储在localStorage中时,浏览器会检查当前域是否有足够的剩余空间。 如是:
- 数据被存储,如果相同的密钥已经存在,覆盖值。
如果不:
- 数据不被存储,现有的数据不会被覆盖。
- 抛出
QUOTA_EXCEEDED_ERR
exception。
在这种情况下, getItem(key)
将返回成功存储的最后一个值(如果有的话)。
(Opera略有不同之处在于它显示一个对话框,让用户select增加当前域的存储空间。)
请注意,sessionStorage和localStorage都是同一个Storage对象的实现,所以它们的行为是相似的,error handling是相同的。
- QuotaExceededError:Domexception22:尝试将某些内容添加到超过配额的存储中
- 是否有可能使用任何HTML5 fanciness导出本地存储到Excel?
- 如何使用目标C在iOS上本地下载和保存文件?
- 从localStorage中删除:我应该使用delete还是.removeItem?
- sessionStorage和localStorage存储在哪里?
- 本地存储vscookies
- 在HTML5中,每个页面/域是否隔离了localStorage对象?
- 在Windows 7上的IE11中损坏的JavaScript localStorage对象
- 子域的HTML5 localStorage大小限制