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

2021-06-17 23:42:03 +08:00
 LeeReamond

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

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

1497 次点击
所在节点    问与答
9 条回复
hronro
2021-06-17 23:42:40 +08:00
service worker
3dwelcome
2021-06-17 23:49:25 +08:00
果断上 indexedDB 啊,那个著名的网盘 mega.nz 就用这个。每次下载都占了我好几个 G 磁盘,下完后关掉浏览器,空间还不自动释放。
LeeReamond
2021-06-17 23:53:44 +08:00
@hronro 查了查,没太看懂,这东西是一个新的浏览器标准,还是说是一个第三方库.网上文章里都写要先注册 sw.js,不过又没说 sw.js 的连接是多少,总不可能凭空注册吧
wuxudong
2021-06-18 00:00:37 +08:00
indexedDB 是浏览器内的数据库,容量理论上不设上限的
kytrun
2021-06-18 08:10:02 +08:00
可以试试基于 indexedDB 封装的库比如 https://github.com/localForage/localForage
dingwen07
2021-06-18 16:19:52 +08:00
很多网站都能缓存大量数据啊,Gmail 甚至可以离线缓存邮件,
Charrlles
2021-06-18 22:12:50 +08:00
@LeeReamond 这是浏览器自带的功能,具体看谷歌的介绍: https://developers.google.com/web/fundamentals/primers/service-workers,然后 service worker 一般都不直接用,太麻烦了,我用的是谷歌封装的 workbox ( https://developers.google.com/web/tools/workbox
LeeReamond
2021-06-19 01:38:11 +08:00
@Charrlles 感谢,很清晰。不过看楼上说的 indexedDB 好像很符合我的需求,不知道 serviceworker 和这个有什么侧重点的不同,感觉好像挺重叠的
Charrlles
2021-06-19 02:05:32 +08:00
@LeeReamond indexedDB 是数据库,需要什么数据得自己存自己取,service worker 是用于缓存数据的工具,相当于给浏览器的请求加了一个中间层,配置好了以后正常请求数据就行,worker 会根据配置从缓存里拿数据或者重新从网络中请求

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/784087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX