YAhoo的14条军规
1、Make Fewer HTTP Requests
众所周知,http请求是要开销的,减少请求数可以提高网页加载速度。常用的方
法,合并css,js以及 Image maps和css sprites等。
2、Use a Content Delivery Network
简单地讲,通过在现有的Internet中增加一层新的网络架构,将网站的内容发布
到最接近用户的 cache服务器内,通过DNS负载均衡的技术,判断用户来源访问
cache服务器取得所需的内容。这样可以有效减少数据在网络上传输的时间,提高
速度。
3、Add an Expires Header
4、Gzip Components
Gzip的思想就是把文件先在服务器端进行压缩,然后再传输。这个压缩率很高,
基本上可以压缩到原来的1/4。
5、Put Stylesheets at the Top
css层叠即意味后面的css可以覆盖前面的css,级别高的css可以覆盖级别低的css
。。ie,firefox等浏览器在css全部传输完全之前不会去渲染任何的东西。很多
浏览器下,如IE,把样式表放在页面的底部的问题在于它禁止了网页内容的顺序
显示。浏览器阻止显示以免重画页面元素,那用户只能看到空白页了。Firefox不
会阻止显示,但这意味着当样式表下载后,有些页面元素可能需要重画,这导致
闪烁问题。所以我们应该尽快让css加载完毕。css的加载是浏览器异步完成的
6、Put Scripts at the Bottom
首先,防止script脚本的执行阻塞页面的下载。在页面loading的过程中,当浏览
器读到js执行语句的时候一定会把它全部解释完毕后在会接下来读下面的内容。
浏览器这么做的逻辑是因为js随时可能执行 location.href或是其他可能完全中
断此页面过程的函数,即如此,当然得等他执行完毕之后再加载咯。所以放在页
面最后,可以有效减少页面可视元素的加载时间。其次,脚本引起的第二个问题
是它阻塞并行下载数量。HTTP/1.1规范建议浏览器每个主机的并行下载数不超过2
个(IE只能为2个,其他浏览器如ff等都是默认设置为2个,不过新出的ie8可以达
6个)。因此如果您把图像文件分布到多台机器的话,您可以达到超过2个的并行
下载。但是当脚本文件下载时,浏览器不会启动其他的并行下载,js的加载是
同步完成的
7、Avoid CSS Expressions
尽量减少或者不使用css表达式
8、Make JavaScript and CSS External
把css和js写在页面内容可以减少2次请求,但也增大了页面的大小。我们的网站
已经对静态文件做了缓存,那也就没有2次多余的http请求。
9、Reduce DNS Lookups
一次DNS的解析过程会消耗20-120毫秒的时间,在dns查询结束之前,浏览器不会下
载该域名下的任何东西。所以减少dns查询的时间可以加快页面的加载速度。
yahoo的建议一个页面所包含的域名数尽量控制在2-4个。这就需要对页面整体有
一个很好的规划。
10、Minify JavaScript
压缩js和css的作用很显然,减少页面字节数。
11、Avoid Redirects
重定向是需要消耗时间的。
12、Remove Duplicate Scripts
13、Configure ETags
14、Make Ajax Cacheable