网站性能优化小结 – 前端优化

2009年10月21日 | 分类: 编程随想 | 标签: , , ,

说到对前端的优化,不得不提到Yahoo 的 Exceptional Performance Team,他们的努力,为我们提供了34条优化建议,并且提供了Firefox下面进行前端分析的扩展YSlow,根据 YSlow对网站的分析报告,逐条进行优化即可。下面只是总结一下我在优化我们网站时针对YSlow分析生成的报告中需要配置服务器端的部分:

1.Add Expires headers

在HTTP/1.1中,Expires headers出现在Caching in HTTP中,用户通过浏览器第一次访问我们的网站时,会请求很多静态文件(css,js,图片等),我们可以通过添加Expires headers来缓存这些文件,以Apache为例: 先注释掉httpd.conf里面的

LoadModule headers_module modules/mod_headers.so

在文件末尾添加上:

ExpiresActive On
ExpiresDefault "access plus 1 year"

这里我将文件的有效时间设置为1年。 关于Apache mod_headers的文档,查看这里

2.Compress components with gzip

用gzip压缩服务器端和浏览器端传输的数据,可以大大减少流量,按照YSlow中的说法:“Approximately 90% of today’s Internet traffic travels through browsers that claim to support gzip”,所以我们大可启用gzip压缩来减少流量。也是以Apache为例:
注释掉http.conf里面的

LoadModule deflate_module modules/mod_deflate.so

添加

DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE js css

到文件末尾,这里我们只对js和css进行压缩,不至于占用太多的CPU资源,jpg、png这些本身就是被压缩好的文件也没有必要进行二次压缩。 DeflateCompressionLevel表示的是压缩程度,越高的压缩程度就会有越好的压缩效果,同时也意味着占用越多的CPU资源。取值范围在 1~9之间,这里我们选择6,保证较好的压缩效果又不占用太多的CPU资源。

3.Configure entity tags (ETags)

关闭last-modified和Etags可以减少服务器的带宽和负载,简单点说,这两个参数会比较本地缓存的资源对应的服务器资源是否被修改过,如果修改过,则重新下载。想更深入地了解,可以看一下InfoQ的《使用ETags减少Web应用带宽和负载》。同样,以Apache为例,我们通过添加以下规则来关闭last-modified和Etags: # 关闭last-modified

Header unset Last-Modified

# 关闭etags

FileETag none
目前还没有任何评论.
注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。