总结: 提高网站访问速度

Best Practices for Speeding Up Your Web Site

原文:

http://developer.yahoo.com/performance/rules.html#page-nav

 

优化网站性能 提高网站速度访问速度的14条实践

http://www.phpv.net/html/1660.html

 

 

Minimize HTTP Requests  减少HTTP请求次数

 

80/20法则:http://yuiblog.com/blog/2006/11/28/performance-research-part-1/

当浏览一个页面的时候,浏览器花费80%的时间在获取外联的js,CSS,Image等等。

 

l  Combined files:

每个页面包含的每个引用文件都需要一次HTTP请求。

 

最佳实践:尽可能把文件组合,例如把一个页面需要的多个js(css)文件整合到一个js(css)文件,甚至对某些访问量大的页面,直接把jscss放在页面中,而不单独做外部链接。

 

l  CSS Sprites:

将多个image合并成一个大的image,通过CSS来控制大image的位置和展示方式,例如使用backgroud image background position来得到自己所需的那部分image

中文介绍:http://oncoding.net/rebuild/css/article200904/150.html

 

l  Image maps

CSS Sprites有点类似,image maps更多的是把相邻的image组合成一个大的image.

 

l  Inline images:

               image嵌入页面中data: URL scheme,从而减少访问imageHTTP请求,但是会增加页面的大小。而且不是所有的浏览器都支持。

 

 

 

Use a Content Delivery Network  使用内容分发网络

        

A content delivery network (CDN) is a collection of web servers distributed across multiple locations to deliver content more efficiently to users. The server selected for delivering content to a specific user is typically based on a measure of network proximity. For example, the server with the fewest network hops or the server with the quickest response time is chosen.

内容分发网络:在网络中部署节点服务器,用户访问的时候,选择最佳节点服务器。

具体介绍:http://baike.baidu.com/view/21895.htm

 

 

 

Add an Expires or a Cache-Control Header设置缓存时间

 

Browsers (and proxies) use a cache to reduce the number and size of HTTP requests, making web pages load faster. A web server uses the Expires header in the HTTP response to tell the client how long a component can be cached.

 

通过缓存可以减少HTTP请求次数。

 

l  For static components: implement "Never expire" policy by setting far future Expires header

l  For dynamic components: use an appropriate Cache-Control header to help the browser with conditional requests.

对不同的组件,设置不同的缓存时间。

Gzip Components   GIZP压缩

目前绝大多数的浏览器都支持gzip,所以可以将网站使用的所有文本内容JS, CSS, HTML, JSP, PHP, XML等均采用gzip压缩,提高传输速度(相应速度)。

http://www.gzip.org

Put Stylesheets at the Top  样式表放在页面上方

CSS样式表放在页面上方<HEAD>里。

Css层叠样式表,后面的可能会覆盖前面的样式,浏览器为了避免重绘页面,所以只有当所有CSS载入完成后,才展现页面。

 

Put Scripts at the Bottum   脚本文件放在页面最后

Avoid CSS Expressions      避免CSS表达式

Make JavaScript and CSS External    JavascriptCSS外联

这一点和减少HTTP请求看起来冲突,但是如果有cache的话,外联的JavascriptCSS文件HTTP请求问题可以得到解决,而且外联后页面的大小会减少。此外,外联便于维护。

 

Reduce DNS Lookups   减少DNS查询

DNS查询会花20-120ms,页面中应尽量少造成DNS查询。

例如页面中包含很多广告。

Minify JavaScript and CSS  压缩JavascriptCSS

 

减少JavascriptCSS文件的大小。

 

前面也提到了由于浏览器都支持压缩传输,所以可以先用GZIP压缩,在用其他的工具压缩(例如去掉空格,替换函数名等)

 

工具: JSMin and YUI Compressor

在线工具:http://dean.edwards.name/packer/

 

Avoid Redirects    避免重定向

每次重定向都会增加一次HTTP请求。

 

Remove Duplicate Scripts  移除重复脚本

减少HTTP请求,减少页面大小,便于维护。

 

Configure Etags   配置Etags标签

客户端得缓存有可能不是最新的,通过在Server端配置Etags标签来标记当前客客户的缓存是否是最新的。

具体过程如下

1.          客户端请求一个页面(A)。

2.          服务器返回页面A,并在给A加上一个ETag

3.          客户端展现该页面,并将页面连同ETag一起缓存。

4.          客户再次请求页面A,并将上次请求时服务器返回的ETag一起传递给服务器。

5.          服务器检查该ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304(未修改——Not Modified)和一个空的响应体。

可参考:使用ETags减少Web应用带宽和负载

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值