需求是需要渲染一些图表,这些图表会被反复使用,即使后端可以缓存,但是数据本身的传输量就比较大,如果可以让用户存在本地的话就省事了。不过数据量比较大,localstorage 只给 5M 的话肯定不够存,有什么办法能存下几百 M 的数据吗?有什么开源库之类的封装好这类功能
子域名有没有什么办法利用,比如主服务在 service.com,数据分散地存到 st1.service.com/st2.service.com 等等这种的?
1
hronro 2021-06-17 23:42:40 +08:00 via iPhone
service worker
|
2
3dwelcome 2021-06-17 23:49:25 +08:00
果断上 indexedDB 啊,那个著名的网盘 mega.nz 就用这个。每次下载都占了我好几个 G 磁盘,下完后关掉浏览器,空间还不自动释放。
|
3
LeeReamond OP @hronro 查了查,没太看懂,这东西是一个新的浏览器标准,还是说是一个第三方库.网上文章里都写要先注册 sw.js,不过又没说 sw.js 的连接是多少,总不可能凭空注册吧
|
4
wuxudong 2021-06-18 00:00:37 +08:00 via Android
indexedDB 是浏览器内的数据库,容量理论上不设上限的
|
5
kytrun 2021-06-18 08:10:02 +08:00 via Android
可以试试基于 indexedDB 封装的库比如 https://github.com/localForage/localForage
|
6
dingwen07 2021-06-18 16:19:52 +08:00 via iPhone
很多网站都能缓存大量数据啊,Gmail 甚至可以离线缓存邮件,
|
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 )
|
8
LeeReamond OP @Charrlles 感谢,很清晰。不过看楼上说的 indexedDB 好像很符合我的需求,不知道 serviceworker 和这个有什么侧重点的不同,感觉好像挺重叠的
|
9
Charrlles 2021-06-19 02:05:32 +08:00 via iPhone 1
@LeeReamond indexedDB 是数据库,需要什么数据得自己存自己取,service worker 是用于缓存数据的工具,相当于给浏览器的请求加了一个中间层,配置好了以后正常请求数据就行,worker 会根据配置从缓存里拿数据或者重新从网络中请求
|