本地存储大小不合理

3

我读到localStorage的最大大小约为5MB。但我做了一些非常奇怪的事情,显示出另一个结果。


我从互联网上复制了一个1024x768的图像(用于启动图像),然后将其转换为base64格式。我将它放在一个文件中,发现该文件大小为300KB。然后,我编写了以下代码:

for(var a;a<1000;a++)
{
    try{localStorage["'"+a+"'"]="The very long string of 75000 characteres";}
    catch(e)
    {
        alert("No !");
        break;
    }
}
alert("Yes !");

我的iPad提示 Yes !。1000*300=300000KB -> 300MB。这意味着localStorage存储了300MB的信息!

这怎么可能?是localStorage在进行压缩处理吗?

编辑:最终,发现是个打字错误。for(var a;a<1000;a++)应该是for(var a=0;a<1000;a++)。如果有人想知道,我成功地存储了6张图片。

1个回答

4
你的for循环从未执行,因为你没有初始化你的循环变量。请尝试:
for(var a=0;a<1000;a++)

仔细比较你问题中的第一行代码和我的答案中的那一行。你会发现一个重要的区别。 - Leopd
是的,谢谢。它有效。我不需要删除这个愚蠢的问题吗? - user1365010
1
你不必删除它。字面上的问题在未来不太可能对许多人有所帮助。但是,拥有iPad上localStorage的示例代码肯定会很有用。不要感到难过——识别问题的根源是构建软件的重要部分。 - Leopd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接