浏览器中从存储位置看缓存的分类

从存储位置看,浏览器缓存分为哪几种?

分为4种:

  • Service Worker(线程缓存)
  • Memory Cache(内存缓存)
  • Disk Cache(硬盘缓存)
  • Push Cache(推送缓存)

Service Worker

定义:运行在浏览器背后的独立线程,一般可以用来实现缓存功能。

注意:使用Service Worker的话,传输协议必须为HTTPS

功能:控制缓存哪些文件,如何匹配缓存、如何读取缓存,并且缓存是持续性的。

实现缓存功能三个步骤:

  • 实现需要注册Service Worker
  • 然后监听install事件以后就可以拦截请求的方式查询是否缓存,存在缓存的话就可以直接读取缓存文件,否则就求请求数据。
  • 当Service Worker没有命中缓存的时候,我们需要去调用fetch函数去获取数据。也就是说,如果我们没有在Service Worker命中缓存的话,会根据缓存查找优先级去查找数据,浏览器会显示我们是从Service Worker中获取的内容。

Memory Cache

定义:内存中的缓存,主要包含当前页面中已经抓取到的资源,例如页面上已经下载的样式、脚本,图片等。

注意:我们一旦关闭Tab页面,内存中的缓存也就被释放。且不会关心HTTP缓存头Cache-Control是什么值。

Disk Cache

定义:缓存在硬盘中的缓存,读取速度慢点,但什么都能存储到磁盘中,比之Memory Cache 胜在容量和存储时效性上。
注意:它会根据HTTP Header中的字段判断哪些资源需要缓存,哪资源不请求直接使用,哪些资源已经过期需要重新请求。

Push Cache

定义:Push Cache(推送缓存)是HTTP/2的内容,当以上三种缓存都没有命中时,它会被使用。它只会在会话(Seesion)中存在,一旦会话结束就会被释放,并且缓存时间很短暂,在谷歌浏览器只有5分钟左右。

特性:

  • 所有的资源都能被推送,并且能够被缓存
  • Push Cache中的缓存只能被使用一次
  • 可以推送其它域名资源
  • 浏览器可以拒绝接受已经存在的资源推送
  • 一旦关闭,Push Cache就会被释放
  • 可以推送到no-cache 和 no-store的资源
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

影风莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值