前端浏览器缓存策略

简单记录一下浏览器缓存策略的理解:

1,按浏览器缓存位置来看分为四种:从上到下优先级依次降低

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

  这是优先级最高的缓存,并且与其它三种不同,是可定制化的缓存,而其它三种只能通过某些字段的设置来规定内存的时效性和方式等,

  会在内存中(不确定是不是浏览器内存)开辟一个独立的空间去做缓存,可以手动清空或超出浏览器自动清空,

  Service Worker 是由开发者编写的额外的脚本,且缓存位置独立

  2)memory cache: 内存缓存

  内存缓存,会缓存页面的所有资源,

  生命周期与tab页相同,除了有限的字段如no-store 之外几乎不可控,

  会在同一个页面资源过大时自动清除最旧资源,

  浏览器为了加快读取缓存速度而进行的自身的优化行为,不受开发者控制,也不受 HTTP 协议头的约束,算是一个黑盒。

  3)disk cache: 硬盘缓存

  是我们内存管理的主要力量,

  可以通过响应头字段的设置来确定缓存方式及过期时间等,相应字段可以查看资料,

  包括强制缓存、协商缓存两种,一般来说强缓存失效后会使用协商缓存,即强制缓存会优先于协商缓存,

  协商缓存失效一般会做网络请求。

  4)push cache: 推送缓存

  是http2.0的内容,优先级在网罗请求之前

2,参考资料:比总结要更重要一些

  一文读懂前端缓存: https://juejin.im/post/5c22ee806fb9a049fb43b2c5?utm_source=gold_browser_extension#heading-1

  深入理解浏览器的缓存机制: https://www.jianshu.com/p/54cc04190252

  

猜你喜欢

转载自www.cnblogs.com/wangtong111/p/12375518.html