当 LocalStorage 达到域的最大存储限制时会发生什么?

lim*_*der 3 html local-storage

当 LocalStorage 达到域的最大存储限制时会发生什么?

  • 达到硬性限制并默默地停止接受新价值观
  • 达到硬限制并抛出错误
  • 达到软限制,浏览器使用修剪策略为新值腾出空间

StackOverflow 有一个类似的问题:LocalStorage 值的最大大小是多少?它回答了浏览器的存储限制是多少的问题,但该问题没有询问或回答达到限制时到底会发生什么。限制是什么对我来说并不重要,对我来说重要的是达到限制时到底会发生什么,以及我是否需要在客户端代码中修剪缓存,或者浏览器是否会这样做自动为我服务。

Chr*_*oph 5

说明规格

如果无法设置新值,该方法必须抛出 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);
}
Run Code Online (Sandbox Code Playgroud)