这两天,拾前人牙慧了解了下浏览器的缓存机制,备忘一下。
一般来说,浏览器都是有缓存的,缓存机制可以通过http请求协议,和html的meta标签来设定,我们前端it牛就只关注后者吧,前者需要服务端或者本地程序自己定义。
这种方式用一句广告词来说就是”so easy!“,只需要如下代码:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
meta标签很牛叉,它提供了很多属性来定义页面的文档信息,包括设置搜索引擎关键字啊,编码啊,作者啊,描述啊,语言啊等等,同样也提供了修改http信息的属性。比如上面的示例就是http请求协议的缓存定义no-cache,无缓存。其实我们可以从语义上来分析:http-equiv 这个属性服务器在处理的时候会把它自动加载到浏览器的头信息里。比如我如下设置:
<meta http-equiv="charset" content="utf-8"> <meta http-equiv="expires" content="30 Nov 2012">
那么你就设置了页面的过期时间和页面编码,浏览器的头信息就会有下面这样的信息:
content-type: text/html charset:utf-8 expires:30 Nov 2012
值得一提的是 expires貌似是http1.0的东西,对现在http1.1来说貌似作用不大。
附上一张别人的两张图,描述一下浏览器请求的原理:
第一次请求:
再次请求: