浏览器缓存

115 阅读1分钟

浏览器缓存不单只有强缓存和协商缓存,还有自带的缓存机制(启发式缓存)。

如何查看请求资源的缓存策略

  1. Size栏:disk cache代表走磁盘缓存,memory cache代表走内存缓存;
  2. cache-control栏:查看缓存策略,可以看到配置文件setting.js没有配置任何缓存策略。

启发式缓存

是指没有开启缓存策略,浏览器依然尽可能多的自动缓存的缓存策略。

通常缓存时间为(Date-Last-Modified)*0.1

cache-control

image.png

  1. 协商缓存:Cache-Control : no-cache。 每次请求还是会和服务器去比对资源有没有修改(也就是拿ETag或者Last-Modified进行比较),如果资源没改变,则直接返回304状态码(Not Modified),说明无需再次传输请求的内容,也就是说可以使用缓存的内容;如果资源改变,则返回200状态码,并且返回新的资源;
  2. 强缓存:max-age=10086,这就表示服务器告诉浏览器这个时间内不要再次请求,但是如果浏览器强制请求获取资源,也是会重新发起拿到返回结果的;
  3. 不缓存:Cache-Control : no-store。这种情况下启发式缓存都不生效了,要慎用

缓存破坏

当资源的url改变时(部署时,静态资源带hash值),会重新发起请求获取新资源;

index.html和setting.json这种类型的文件要设置协商缓存哟。