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

上一篇: What is the max size of localStorage values?

下一篇: Copy file during Team City Build