缓存机制一般是有后端设定的,为什么在不同的浏览中区别会很大?

来源:8-6 缓存6-流程图

七月有风

2018-01-15

加载完成之后,再次刷新同一个网站的页面,在chrome中和火狐中显示不一样。chrome中状态吗一直是200;火狐下一直是304。为什么在不同的浏览中区别会很大?缓存机制不是已经规定好的吗,为什么还受制于浏览器的不同?

下面是chrome 中结果:

 //img.mukewang.com/szimg/5a5bfd20000174de18230448.jpg

 

下面是火狐的中的结果:

 //img.mukewang.com/szimg/5a5bfd300001878f16640628.jpg

 

 

 


写回答

1回答

千迦

2018-07-27

同学你好,我们课程也说了,缓存策略分为服务端的和客户端的,可能也是我的疏忽,课程中我们客户端的缓存策略都是以chrome为例说的。你的第一个截图可以看到,那个200的请求,实际上都是from cache的,也就是这些资源没有去请求服务端,甚至连去服务端判断资源有没有过期也没有做,这是chrome自身的功能,这个from cache的来源,在firefox里没有,所以对于firefox里的资源,都会去请求服务端,在服务端判断没有过期后,返回304然后使用客户端缓存的相关数据,这是firefox和chrome在客户端缓存机制上的一些区别导致的,总体上来看,chrome的这种策略会有更快的访问速度,但是在客户端维护缓存失效判断的话,也可能有缓存一直没法更新的风险,因为客户端毕竟不是开发者可控的。

2
1
七月有风
非常感谢!
2018-07-28
共1条回复

让你页面速度飞起来 Web前端性能优化

【面试必备】采用Vue-SSR和PWA等新技术,快速突破你的Web页面性能的瓶颈

1054 学习 · 123 问题

查看课程