我有一个JavaScript代码保存字符串到本地存储,字符串大小为400000,
var dataURL = canvas.toDataURL("image/jpg").toString();
localStorage.setItem("dataURL", dataURL);
字符串
我打开的html文件从 chrome ,在一台电脑它的确定在另一台电脑我得到
未捕获的QuotaExceedError:无法在“Storage”上执行“setItem”:设置“dataURL”的值超出了配额。
在这台计算机中,我允许保存字符串长度不超过100000个字符。两台电脑都有相同的Chrome版本35.0.1916.114 m为什么?
6条答案
按热度按时间iq0todco1#
当您的浏览器达到最大限制时,它会抛出此错误Failed to execute 'setItem' on 'Storage':设置“”的值超出了配额。
字符串
hgc7kmma2#
由于以下原因也可能发生此类错误:
在单个localStorage键中存储值是有限制的。
例如,如果我写localStorage.setItem('data',allData);则有一个限制设置为**'data'key,它可以在'allData'**value中存储指定数量的字符。
在chrome和firefox中,您可以在一个密钥中存储多达5200000个字符。您可以通过访问此网站https://arty.name/localstorage.html检查浏览器限制
因此,要解决此问题,您必须检查您试图存储在单个密钥中的字符数。
如果您超过了localStorage键的值大小,则必须将大小减小到适当的限制。
wlsrxk513#
用
localStorage.clear();
清除本地存储对我来说很有效。如果您使用Firefox,则可能需要使用
window.localStorage.clear();
eqfvzcg84#
chrome的本地存储默认是25 M,所以清除你的chrome的本地存储就可以了。祝你好运!
pxyaymoc5#
这取决于浏览器首选项和磁盘空间。比较你的两台电脑的浏览器在这里https://arty.name/localstorage.html,并检查他们是否存储相同的号码。的角色。你会看到不同之处。
rlcwz9us6#
下面的代码将允许您保存在本地存储器中的最多数据量,而不会在存储超过时清除它。
字符串