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

时间:2013-03-28 16:47:41

标签: html5 local-storage

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

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

有一个类似的StackOverflow问题:What is the max size of localStorage values?它回答了浏览器存储限制的问题,但该问题不会询问或回答达到限制时到底发生了什么。限制对我来说无关紧要,对我来说重要的是当达到限制时到底发生了什么,如果我需要在客户端代码中修剪缓存,或者浏览器会做什么这对我来说是自动的。

1 个答案:

答案 0 :(得分:3)

说明Spec

  

如果无法设置新值,则该方法必须抛出一个   QuotaExceededError异常。 (例如,如果用户,则设置可能失败   已禁用该网站的存储空间,或者已超出配额。)

理论上,你应该总是使用try-catch clause来防止这种错误。

for (var i = 0;i<200000;i++){
    test += "sdfghyxcvbn123kjhajsdfkhuwehfkjs,dnfhkweufhkjsdf";
}
try{
    var result = window.localStorage.setItem("test",test);
} catch(e) {
    console.log(e.message);
}