前端工程师必会技能浏览器缓存你知多少

在前端开发中,我们在提到性能优化的时候总会提到一点:合理设置缓存。我们该如何从这方面入手来考虑提高网站性能呢?

前言

我们都知道HTML5引入了应用程序缓存,可以在没有网络的情况下进行访问,同时,HTML5还引入了storage本地存储。这些都属于应用缓存。本篇文章主要内容是和浏览器缓存相关的,也可以说是HTTP缓存。

什么是浏览器缓存

MDN上是这样解释浏览器缓存的:

AbrowsercacheholdsalldocumentsdownloadedviaHTTPbytheuser...withoutrequiringanadditionaltriptotheserver.

意思就是,浏览器缓存保存着用户通过HTTP获取的所有资源,再下一次请求时可以避免重复向服务器发出多余的请求。

通俗的说,就是在你访问过一次某个网站之后,这个站点的文字、图片等所有资源都被下载到本地了,下次再访问该网站时判断是否满足缓存条件,如果满足就不用再花费时间去等待资源的获取了。

浏览器缓存的分类

一般来说浏览器缓存可以分为两类:

1.)强缓存

2.)协商缓存(对比缓存)

我们需要知道的是,浏览器在加载资源时,会先判断是否命中强缓存再验证是命中协商缓存。

其它的的具体细节,稍后会展开来说。

强缓存

浏览器在加载资源时,会先根据本地缓存资源的header中的信息判断是否命中强缓存,如果命中则直接使用缓存中的资源不会再向服务器发送请求。

从图中可以看出,强缓存一般是这样一个流程:

1.)查看header头中的Expire和Cache-control来判断是否满足规则;

2.)如果满足规则,就返回缓存的数据;

3.)如果不满足规则,就向服务器发送请求;

4.)服务器返回数据;

5.)将新数据存入缓存。

6.)所以我们主要就是


转载请注明:http://www.aierlanlan.com/grrz/4126.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了