iPhone上的本地存储限制是多少?

50

我想知道iPhone上HTML 5本地存储的极限是多少?我看到说只有5 MB,但我感到很惊讶这么少。有什么想法吗?


你是在谈论缓存吗?如果是的话,这与 https://dev59.com/uEfRa4cB1Zd3GeqP8mbW 是重复的。 - cidered
4
我在提到“HTML 5客户端存储规范”,这不是缓存,而是HTML 5的一种新方式:通过键值存储来存储信息。参考链接为:http://developer.apple.com/safari/library/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Name-ValueStorage/Name-ValueStorage.html#//apple_ref/doc/uid/TP40007256-CH6-SW1 - fesja
15
是的,这与 iPhone 上的网页开发有关。 - Brad Larson
1
请查看此链接 https://demo.agektmr.com/storage/ ,这可能会有所帮助。 - Eugene Hoza
4个回答

36

移动版 Safari 在 iPhone 和 iPad 上使用 localStorage 时,存储超过 5MB 会抛出 QUOTA_EXCEEDED_ERR 错误。如果使用 HTML5 SQL,则用户将在每增加 5MB 存储空间时提示增加存储限制。

桌面版 Safari v4 在 localStorage 上没有限制(据我所知)。但是,Safari v5 限制网站存储量为 5MB,当超过此限制时会抛出 QUOTA_EXCEEDED_ERR 错误,表现与移动版本相同。


每个域名限制5MB还是总共限制5MB? - whiteatom
@whiteatom 每个域名5MB。 - Hamid Sarfraz
3
最佳答案。其他人似乎有点困惑。 localStorage !== WebSQL storage... (这句话的意思是:本地存储(localStorage)不等同于WebSQL存储。) - War10ck

34

2
谢谢!你知道在10 MB之后它是否会再次要求15 MB吗? - fesja
1
不,我不确定。试一下?:P - Raptrex
3
FYI:对于iPad 3.2,您可以要求任何大小不超过50MB。 - Oskar Austegard
12
只有在使用Web SQL数据库http://dev.w3.org/html5/webdatabase/时才是真实的,而不是Web Storage(JavaScript“localStorage”键/值存储)http://dev.w3.org/html5/webstorage/,否则将无法让用户增加使用空间。 - antonj
1
O'Reilly的链接已经失效。 - Jason S

4

3
有趣的页面,不适用于Web SQL等。不幸的是,开发者从未听说过二分查找,并且对“无限”的定义也相当奇怪。 - grr

2

2021年1月

Chrome和Safari在iPhone上无法将超过2750 Kbs的数据保存到本地存储变量中。

    //HTML

    <div> The localStorage limit is <span id="size">???</span> KBs. </div>

    //JS

    function gen(n) {
        return new Array((n * 1024) + 1).join('a')
    }
     
    //window.localStorage.clear();
     
    // Determine size of localStorage if it's not set
    if (!localStorage.getItem('size')) {
        var i = 0;
        try {
            // Test up to 10 MB
            for (i = 0; i <= 10000; i += 250) {
                localStorage.setItem('test', gen(i));
            }
        } catch (e) {
            localStorage.removeItem('test');
            localStorage.setItem('size', i ? i - 1 : 0);
            
        }
    }
    
    
    var el = document.getElementById('size');        
    el.innerHTML = localStorage.getItem('size');

现在看来,2750似乎是限制。此外,我遇到了一些问题,当调用localStorage.setItem()时,Safari没有抛出“超过配额”的错误,即使本地存储大小略微超过限制。它只是不保存任何东西。 - P Roitto

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