镀铬本地存储

Ort*_*iel 25 html javascript google-chrome local-storage

我有一个JavaScript代码,它将字符串保存到本地存储,字符串大小为400000,

var dataURL = canvas.toDataURL("image/jpg").toString();
localStorage.setItem("dataURL", dataURL);
Run Code Online (Sandbox Code Playgroud)

我从chrome打开html文件,在一台计算机上我可以在另一台计算机上运行

未捕获的QuotaExceededError:无法在"存储"上执行"setItem":设置"dataURL"的值超出了配额.

在这台计算机中,我允许保存字符串长度不超过100000个字符.两台计算机都具有相同的chrome版本35.0.1916.114 m为什么?

小智 12

当您的浏览器达到最大限制时,它将抛出此错误无法在"存储"上执行'setItem':设置''的值超出配额.

  • 你可以像这样处理它

 try {
     var count = 100;
     var message = "LocalStorageIsNOTFull";
     for (var i = 0; i <= count; count + 250) {
         message += message;
         localStorage.setItem("stringData", message);
         console.log(localStorage);
         console.log(count);
     }

 }
 catch (e) {
     console.log("Local Storage is full, Please empty data");
     // fires When localstorage gets full
     // you can handle error here or empty the local storage
 }
Run Code Online (Sandbox Code Playgroud)


Pos*_*hin 6

清除本地存储localStorage.clear();对我有用。

如果您使用的是 Firefox,则可能需要使用 window.localStorage.clear();


小智 5

chrome本地存储的默认值为25M,因此请清除您的chrome本地存储。祝好运!

  • 根据 [localStorage 值的最大大小是多少?](/sf/answers/209252221/) 你错了。 (4认同)

小智 5

由于以下原因,也可能发生此类错误:

您可以将值存储在单个 localStorage 键中是有限制的。

例如,如果我写 localStorage.setItem('data',allData); 然后有一个限制设置为'data'键,它可以在'allData'值中存储指定数量的字符。

在 chrome 和 firefox 中,您最多可以在一个键中存储5200000 个字符。您可以通过访问此站点来检查浏览器限制https://arty.name/localstorage.html

因此,要解决此问题,您必须检查您尝试存储在单个键中的字符数。

如果超出 localStorage 键的值大小,则必须将大小减小到适当的限制。


com*_*nik 3

这取决于浏览器首选项和磁盘空间。在这里比较您两台计算机的浏览器https://arty.name/localstorage.html并检查它们是否存储相同的编号。的字符。你会看到差异。