V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LeeReamond
V2EX  ›  问与答

浏览器对前端应用只能存储 5M 缓存数据的限制有什么办法突破吗?

  •  
  •   LeeReamond · 2021-06-17 23:42:03 +08:00 · 1300 次点击
    这是一个创建于 1014 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求是需要渲染一些图表,这些图表会被反复使用,即使后端可以缓存,但是数据本身的传输量就比较大,如果可以让用户存在本地的话就省事了。不过数据量比较大,localstorage 只给 5M 的话肯定不够存,有什么办法能存下几百 M 的数据吗?有什么开源库之类的封装好这类功能

    子域名有没有什么办法利用,比如主服务在 service.com,数据分散地存到 st1.service.com/st2.service.com 等等这种的?

    9 条回复    2021-06-19 02:05:32 +08:00
    hronro
        1
    hronro  
       2021-06-17 23:42:40 +08:00 via iPhone
    service worker
    3dwelcome
        2
    3dwelcome  
       2021-06-17 23:49:25 +08:00
    果断上 indexedDB 啊,那个著名的网盘 mega.nz 就用这个。每次下载都占了我好几个 G 磁盘,下完后关掉浏览器,空间还不自动释放。
    LeeReamond
        3
    LeeReamond  
    OP
       2021-06-17 23:53:44 +08:00
    @hronro 查了查,没太看懂,这东西是一个新的浏览器标准,还是说是一个第三方库.网上文章里都写要先注册 sw.js,不过又没说 sw.js 的连接是多少,总不可能凭空注册吧
    wuxudong
        4
    wuxudong  
       2021-06-18 00:00:37 +08:00 via Android
    indexedDB 是浏览器内的数据库,容量理论上不设上限的
    kytrun
        5
    kytrun  
       2021-06-18 08:10:02 +08:00 via Android
    可以试试基于 indexedDB 封装的库比如 https://github.com/localForage/localForage
    dingwen07
        6
    dingwen07  
       2021-06-18 16:19:52 +08:00 via iPhone
    很多网站都能缓存大量数据啊,Gmail 甚至可以离线缓存邮件,
    Charrlles
        7
    Charrlles  
       2021-06-18 22:12:50 +08:00 via iPhone   ❤️ 1
    @LeeReamond 这是浏览器自带的功能,具体看谷歌的介绍: https://developers.google.com/web/fundamentals/primers/service-workers,然后 service worker 一般都不直接用,太麻烦了,我用的是谷歌封装的 workbox ( https://developers.google.com/web/tools/workbox
    LeeReamond
        8
    LeeReamond  
    OP
       2021-06-19 01:38:11 +08:00
    @Charrlles 感谢,很清晰。不过看楼上说的 indexedDB 好像很符合我的需求,不知道 serviceworker 和这个有什么侧重点的不同,感觉好像挺重叠的
    Charrlles
        9
    Charrlles  
       2021-06-19 02:05:32 +08:00 via iPhone   ❤️ 1
    @LeeReamond indexedDB 是数据库,需要什么数据得自己存自己取,service worker 是用于缓存数据的工具,相当于给浏览器的请求加了一个中间层,配置好了以后正常请求数据就行,worker 会根据配置从缓存里拿数据或者重新从网络中请求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2872 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:20 · PVG 23:20 · LAX 08:20 · JFK 11:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.