localStorage 据说有大小限制,不知道指的是每条记录还是总体大小限制 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
daijinming
V2EX    程序员

localStorage 据说有大小限制,不知道指的是每条记录还是总体大小限制

  •  
  •   daijinming 2018-12-04 15:18:28 +08:00 11682 次点击
    这是一个创建于 2552 天前的主题,其中的信息可能已经有所发展或是发生改变。

    localStorage 据说有大小限制,不知道指的是每条记录还是总体大小限制,查了网上的很多资料,也没有搞清楚这个问题

    19 条回复    2018-12-04 21:10:31 +08:00
    des
        1
    des  
       2018-12-04 15:26:30 +08:00 via Android
    如果我没记错的话,是总体 4M
    fe619742721
        2
    fe619742721  
       2018-12-04 15:27:41 +08:00 via iPhone
    总体,5M,不同浏览器不同标准,网上有测试极限代码
    janxin
        3
    janxin  
       2018-12-04 15:29:18 +08:00
    每个浏览器不同,很多浏览器的早期版本都还没限制...
    lauix
        4
    lauix  
       2018-12-04 15:35:38 +08:00
    4M, 数据量大 可以采用 indexDB
    daijinming
        5
    daijinming  
    OP
       2018-12-04 15:41:39 +08:00
    我之前开发的一个笔记本 https://notepad2.cn 就是采用 localStorage ,现在考虑换成 indexDB,但是测试了编写难度比 localStorage 麻烦很多
    yangehappy
        7
    yangehappy  
       2018-12-04 15:55:07 +08:00
    总体大小 各家的浏览器实现都不一样 所以大小会有差别
    a191243108
        8
    a191243108  
       2018-12-04 15:59:55 +08:00
    文档说最大 5M,不过不同浏览器有差异。indexDB 可以用哦。
    daijinming
        9
    daijinming  
    OP
       2018-12-04 16:34:24 +08:00
    https://arty.name/localstorage.html 测试了一下,火狐和谷歌支持 520 万字符,IE 支持 9900 万字符
    daijinming
        10
    daijinming  
    OP
       2018-12-04 16:47:11 +08:00
    @a191243108 @des @fe619742721 @janxin @lauix @learnshare @yangehappy 大家觉得 websql 怎么样,我觉得这个比 indexDB 简单
    a191243108
        11
    a191243108  
       2018-12-04 16:51:46 +08:00
    @daijinming indexDB 兼容性更好(虽然 w3c 说废弃),当初我看过 websql,对比过。我用在移动端。至今没报问题,PC 没用过。你查文档一下吧。移动的话,我推荐 indexDB
    zeromake
        12
    zeromake  
       2018-12-04 17:39:50 +08:00
    @daijinming #10
    直接用个包装库不就好了 [localForage]( https://github.com/localForage/localForage) 支持
    1. indexedDB
    2. WebSQL
    3. localStorage
    daijinming
        13
    daijinming  
    OP
       2018-12-04 17:51:45 +08:00
    @zeromake 非常感谢,再也不用纠结了
    vx2e
        14
    vx2e  
       2018-12-04 17:55:30 +08:00
    indexDB 不是被废弃的,websql 才是被废弃的,indexDB 是代替 websql 的,楼上有个哥们搞错了。
    sxlzll
        15
    sxlzll  
       2018-12-04 17:59:06 +08:00
    always catch the possible exceptions from setItem()
    litpen
        16
    litpen  
       2018-12-04 18:01:01 +08:00
    不同的浏览器有不同的限制,所以没有明确的大小限制
    linchengzzz
        17
    linchengzzz  
       2018-12-04 18:12:50 +08:00
    indexDB 可以,sw.js 也是 indexDB
    lauix
        18
    lauix  
       2018-12-04 18:37:38 +08:00
    @daijinming websql 被废弃了,只有 indexdb 了
    githua
        19
    githua  
       2018-12-04 21:10:31 +08:00
    @daijinming
    一般 pc 浏览器和小米自带浏览器的 localStorage 和 sessionStorage 都是 5242880 字符( String.length 相加计算)。
    苹果的 safari localStorage 为 2621440 字符,sessionStorage 大量写入会触发错误。

    我特地写了一个测试页面: https://www.githua.com/tool/local_storage.html

    有些网站测试出来的不是整整的 5242880 ( 5120x1024 ),而是 5101k 之类的,我猜测应该是没把 key 算上,上面这个测试页面统计包含 key 的长度,所以很整齐,刚好 5120*1024,由此可知 key 也是算容量的。

    关于单位问题,单位是字符,可以是中文或英文字母,一个中文等同一个英文字母。所以有些地方说是容量是 10M,也不能算错。因为 js 用 utf-16,所以中文英文一个字符都是是 2 个字节,10M 指的是字节数。

    以上可能有错误的地方,欢迎指正。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     852 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 19:47 PVG 03:47 LAX 11:47 JFK 14:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86