当 LocalStorage 达到域的最大存储限制时会发生什么?
- 达到硬性限制并默默地停止接受新值
- 达到硬限制并抛出错误
- 达到软限制,浏览器使用修剪策略为新值腾出空间
有一个类似的 StackOverflow 问题:localStorage 值的最大大小是多少?它回答了浏览器的存储限制是什么的问题,但该问题并没有询问或回答达到限制时究竟会发生什么。限制对我来说无关紧要,对我来说重要的是当达到限制时究竟会发生什么,以及我是否需要注意修剪客户端代码中的缓存,或者浏览器是否会这样做它自动为我服务。
当 LocalStorage 达到域的最大存储限制时会发生什么?
有一个类似的 StackOverflow 问题:localStorage 值的最大大小是多少?它回答了浏览器的存储限制是什么的问题,但该问题并没有询问或回答达到限制时究竟会发生什么。限制对我来说无关紧要,对我来说重要的是当达到限制时究竟会发生什么,以及我是否需要注意修剪客户端代码中的缓存,或者浏览器是否会这样做它自动为我服务。
说明规格:
如果无法设置新值,则该方法必须抛出 QuotaExceededError 异常。(例如,如果用户禁用了站点的存储,或者超出了配额,设置可能会失败。)
所以理论上你应该总是使用try-catch 子句来防止这个错误。
for (var i = 0;i<200000;i++){
test += "sdfghyxcvbn123kjhajsdfkhuwehfkjs,dnfhkweufhkjsdf";
}
try{
var result = window.localStorage.setItem("test",test);
} catch(e) {
console.log(e.message);
}