前言
今日早读文章由
下半身要幸福翻译分享。正文从这开始~~
概要缓存是一个非常重要同样也非常复杂的浏览器特性
在这篇文章中,我们将解释浏览器是如何利用缓存来使加载页面更快,哪些因素决定了缓存的周期,在必要的时候如何去避开缓存。
为什么缓存会如此重要呢?所有的浏览器都会尝试去缓存静态资源的本地副本,以此去降低页面的加载时间以及体积最小的网络传输
不论服务是在相同的网络环境下还是在世界上其他的网络环境下,从本地缓存中取资源一定会比通过网络请求的方式要快
如何让浏览器缓存生效呢?case1:用户之前没有访问过这个站点浏览器针对此站点没有任何的缓存文件,所以浏览器会向站点服务去请求所有所需的资源
下面是一张首次访问维基百科首页的资源下载完之后的截图,底部状态栏显示出有kb的数据传输到了浏览器中
case2:用户之前访问过站点浏览器会去请求站点服务器取到html页面,然后会查看是否有对应静态资源的缓存(js,css,images)
当我们重新刷新维基百科的页面时,就能看出因为缓存的原因与之前的请求状况不同的地方
此时数据的传输量已经降到了bytes,相当于首页访问页面时的0.3%,Size这一列就显示出了我们的大多数的资源都来自于缓存
Chrome即会在memorycache中去拉取内容,也会在diskcache中去拉取内容,因为在case1和case2中,我们还没有关闭浏览器,所以数据依然会存储在memorycache中
显示浏览器缓存在chrome中,我们可以在地址栏中输入chrome://cache去查看缓存的内容,对于每一个已经缓存的文件,这里都将会显示一个页面链接,页面链接的内容包含一个更加详细的视图说明。
浏览器是如何知道什么该缓存的浏览器先去检查服务器所生成的