Yahoo军规
一. Yahoo军规是Yahoo总结的提高web访问速度,降低web部署成本的规则。
二. 共有:35条。
三. 简单介绍如下:
1. 尽可能减少HTTP请求
2. 使用CND(内容分发网络):费用高是缺点,因为要买服务器
3. 添加exprise/Cache-control头
4. 使用Gzip压缩:服务器将传输内容进行Gzip压缩,然后传输,最后在浏览器解压缩。
5. CSS放在页面最上面:
6. JS代码放在页面最下面:
7. 禁止使用CSS Expression:也就是CSS表达式,就是CSS中使用JS代码,因为带来了巨大的计算量。
8. 减少DNS查找:(1).链接最好用IP而非域名,DNS解析大概20ms左右;(2).增加页面缓存。
9. Js和CSS最小化:两个方法:(1).取出不必要的空格、回车符、注释等;(2).简写JS的方法名参数名等。注意:通常开发两个版本,一个production版本和一个developer版本,项目正式上线时将Dev版替换为Prd版本。
10. 避免重定向:重定向增加了用户请求次数,所以多用转发而少用重定向。
11. 移出重复脚本:检查是否有重复脚本的出现,有的话要移出它。
12. 配置ETag:即配置实体标签(Entity),包含在响应头中(response)。表示请求的版本。好处:减去server的压力。 具体工作原理:(1).browser发请求给server,server响应browser并在响应头中包含ETage标签,完成第一次请求; (2).browser发起第二次请求给同一个server,请求头中包含上次server返回的Etag标签,server首先检查Etag标签,如果内容一致,则返回304,即告诉browser此次请求的返回值和上次一样,从自己的缓存找内容即可; (3).browser收到返回,然后从cache中取出想要内容。
13. 使用Ajax缓存:提交方式分为get和post,get方式常常被缓存,特点:效率高,数据量小,不能用于经常性刷新的请求。Post方式永远不缓存,特点:数据量大,效率低。
四. 性能分析工具——YSlow
1. 前提: 基于Firefox浏览器和FireBug插件,Chrome也可以用但是功能有限.
2. 使用:参见幕客网《Yhoo军规》最后一集的视频讲解。