- 注册时间
- 2015-10-24
- 最后登录
- 2016-1-26
- 在线时间
- 39 小时
- 阅读权限
- 70
- 积分
- 5053
- 帖子
- 38
- 主题
- 5
- 精华
- 0
- UID
- 45852
 
- 注册时间
- 2015-10-24
- 最后登录
- 2016-1-26
- 在线时间
- 39 小时
- 阅读权限
- 70
- 积分
- 5053
- 帖子
- 38
- 主题
- 5
- 精华
- 0
- UID
- 45852
|
发表于 2015-11-11 21:46:38
|显示全部楼层
12、为文件头指定Expires或Cache-Control
这条守则包括两方面的内容:
对于静态内容:设置文件头过期时间Expires的值为“Never expire”(永不过期)
对于动态内容:使用恰当的Cache-Control文件头来帮助浏览器进行有条件的请求
网页内容设计现在越来越丰富,这就意味着页面中要包含更多的脚本、样式表、图片和Flash。第一次访问你页面的用户就意味着进行多次的HTTP请求,但是通过使用Expires文件头就可以使这样内容具有缓存性。它避免了接下来的页面访问中不必要的HTTP请求。Expires文件头经常用于图像文件,但是应该在所有的内容都使用他,包括脚本、样式表和Flash等。
浏览器(和代理)使用缓存来减少HTTP请求的大小和次数以加快页面访问速度。Web服务器在HTTP响应中使用Expires文件头来告诉客户端内容需要缓存多长时间。下面这个例子是一个较长时间的Expires文件头,它告诉浏览器这个响应直到2010年4月15日才过期。
Expires: Thu, 15 Apr 2010 20:00:00 GMT
如果你使用的是Apache服务器,可以使用ExpiresDefault来设定相对当前日期的过期时间。下面这个例子是使用ExpiresDefault来设定请求时间后10年过期的文件头:
ExpiresDefault "access plus 10 years"
要切记,如果使用了Expires文件头,当页面内容改变时就必须改变内容的文件名。依Yahoo!来说我们经常使用这样的步骤:在内容的文件名中加上版本号,如yahoo_2.0.6.js。
使用Expires文件头只有会在用户已经访问过你的网站后才会起作用。当用户首次访问你的网站时这对减少HTTP请求次数来说是无效的,因为浏览器的缓存是空的。因此这种方法对于你网站性能的改进情况要依据他们“预缓存”存在时对你页面的点击频率(“预缓存”中已经包含了页面中的所有内容)。Yahoo!建立了一套测量方法,我们发现所有的页面浏览量中有75~85%都有“预缓存”。通过使用Expires文件头,增加了缓存在浏览器中内容的数量,并且可以在用户接下来的请求中再次使用这些内容,这甚至都不需要通过用户发送一个字节的请求。
-------------------------------------------------------------------------
这些配置都是配置浏览器缓存的,具体配置坛子里面有
这里要注意 静态内容和动态内容,以及静态内容的版本号管理
这里配置的缓存主要是客户端缓存,
加缓存的首要条件就是 静态文件要加版本号
静态文件添加版本号 可以说是一个技术公司基本技术分水岭,因为这设计基础的项目构建过程和发布过程
一般可以选择把版本号放在目录中,一个版本号一个目录 这样不高效,操作却简单
也可以给每个文件打版本号,这样最高效,更新了的文件就版本号升级,不更新就不升级,但是会存在版本号依赖,比较难搞
所以只有带有版本号的文件或者目录是 绝对静态的 其他的都是相对静态的
因为这里配置的是客户端缓存,缓存后不好更新,所以要慎重,看缓存了是否对业务由影响
所以一般建议按域名配置 这个域名下的资源全部缓存1天或者一小时,需要缓存的放在这里,开发子集可以衡量
|
|