Service Worker 一个服务器与浏览器之间的中间人角色,如果网站中注册了service worker那么它可以拦截当前网站所有的请求,进行判断(需要编写相应的判断程序),如果需要向服务器发起请求的就转给服务器,如果可以直接使用缓存的就直接返回缓存不再转给服务器。从而大大提高浏览体验。
Memory Cache Memory Cache 内存缓存,主要包含当前页面已经抓取到的资源,例如页面上已经下载的样式、脚本、图片等。读取内存中的数据肯定比磁盘快,内存缓存读取高效,可是可持续时间短,会随着进程释放而释放,一旦关闭tab页面,内存缓存也就被释放了 既然内存缓存高效,能不能把内存都存在内存中?这是不可能的,内存空间有限,操作系统要精打细算使用,所以可用的内存并不多 当我们访问页面后,再次刷新页面,可以发现多数据源于内存 内存缓存中有一块重要的缓存指令是preloader相关指令下载的资源,众所周知,preloader的相关指令已经是页面优化的常见手段之一,它可以一边解析js/css文件,一边网络请求下一个资源 需要注意:内存缓存在缓存资源时并不关心返回资源的HTTP缓存头Catch-Control是什么值,同时资源的匹配也并非仅仅对URL匹配,还会对content-type,Cors等特征做校验 Disk Cache Disk Cache 也是存储在硬盘中的缓存,读取速度慢点,但是都能存储在磁盘中,比之Memory Cache胜在了容量和存储时效性上 在所有浏览器缓存中,Disk Cache 覆盖面基本是最大的。它会根据 HTTP Herder 中的字段判断哪些资源需要缓存,哪些资源可以不请求直接使用,哪些资源已经过期需要重新请求。并且即使在跨站点的情况下,相同地址的资源一旦被硬盘缓存下来,就不会再次去请求数据。绝大部分的缓存都来自 Disk Cache, Push Cache Push Cache(推送缓存)是 HTTP/2 中的内容,当以上三种缓存都没有命中时,它才会被使用。它只在会话(Session)中存在,一旦会话结束就被释放,并且缓存时间也很短暂,在Chrome浏览器中只有5分钟左右,同时它也并非严格执行HTTP头中的缓存指令。 那么为了性能上的考虑,大部分的接口都应该选择好缓存策略,通常浏览器缓存策略分为两种:强缓存和协商缓存,并且缓存策略都是通过设置 HTTP Header 来实现的。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有