localStorage值的最大大小是多少?
由于localStorage
(当前)仅支持将字符串作为值,并且为了这样做,在存储对象之前需要将对象字符串化(存储为JSON字符串),是否存在对值长度的限定。
有谁知道是否有适用于所有浏览器的定义?
从维基百科文章引用Web存储:
Web存储可以简单地看作是对cookie的改进,提供更大的存储容量( 谷歌浏览器中的每个来源10 MB(https://plus.google.com/u/0/+FrancoisBeaufort/posts/S5Q9HqDB8bh),Mozilla Firefox ,Opera; Internet Explorer中每个存储区10 MB )以及更好的编程接口。
并且引用John Resig的文章[2007年1月发布]:
储存空间
这意味着,使用DOM存储,您的存储空间将大大超过对Cookie所施加的典型用户代理限制。 但是,提供的数量并未在规范中定义,也不由用户代理进行有意义的广播。
如果您查看Mozilla源代码,我们可以看到5120KB是整个域的默认存储大小。 与典型的2KB cookie相比,这为您提供了更多的空间。
但是,这个存储区域的大小可以由用户自定义 (所以5MB的存储区域并不是保证的,也不是暗示的),并且用户代理(例如Opera可能只提供3MB - 但只有时间才能说明。 )
其实歌剧没有5MB的限制。 它提供了增加限制,因为应用程序需要更多。 用户甚至可以为域选择“无限存储”。
您可以轻松地自行测试localStorage限制/配额。
以下是找出限制的简单脚本:
if (localStorage && !localStorage.getItem('size')) {
var i = 0;
try {
// Test up to 10 MB
for (i = 250; i <= 10000; i += 250) {
localStorage.setItem('test', new Array((i * 1024) + 1).join('a'));
}
} catch (e) {
localStorage.removeItem('test');
localStorage.setItem('size', i - 250);
}
}
这是JSFiddle和博客文章的要点。
该脚本将测试设置越来越大的文本字符串,直到浏览器抛出异常。 此时,它将清除测试数据,并在localStorage中设置一个大小键(以千字节为单位)。
链接地址: http://www.djcxy.com/p/36793.html