影响网页加载速度的因素很多,首要的是你的服务器以及相应的网络环境等,当然这些因素都是你一定程度上不太可控制的。最近一段时间比较热闹的是Google宣称把网页的加载速度纳入排名的一个参考因素,这个是可以理解的,不仅搜索引擎喜欢更快的页面加载,用户也喜欢“快感”。

这里我想提几点你可以自主控制并且能优化的几点因素,也是我本人亲身反复操作实践过的,确实能有效的提高网页的加载速度.通过这些操作,你的网页加载速度可以提升至少100%以上. 其要点就是理解HTTP的传输机制以及页面渲染机制,相应的进行优化来缩写小页面传输大小,提高页面响应速度。

网页级别的操作:
1. CSS以及javascript文件除非必须,否则放到外部文件中进行引用, 并且这些文件能合并的就尽量合并, 这样可以减少http的并发请求并实现缓存(放到网页内部的javascript代码每次请求都会加载)
2. 如果javascript文件的引用能够放到网页的最后,那就放到最后的位置, 这样可以加速浏览器的渲染速度
3. 把CSS和javascript文件的空格,换行等全部去掉, 可用到的工具:   http://crockford.com/javascript/jsmin
4. 图片一定要压缩, 一般的jpeg,png等虽然已经是压缩的文件,但你可能没有注意到这些文件其实可以进一步的压缩并且一定程度上不失真, 比如50K的文件可以压缩到20K,对于图片多的网站能提高不小加载的速度
5. CSS文件中尽量不要用Expressions以及滤镜等语法, 虽然该语法或者滤镜能起到比较绚的效果.
6. CSS文件要放到最顶部的位置,这样能提高浏览器的渲染速度, 不过一般我们都是这样操作的,把CSS的引用放到head的部分
7. 网页图片的引用尽量不要进行缩小操作, 比如一个图片本身是100*100, 不要写成width=50 height=50, 可以有效减小加载文件的大小, 如果你想实现50*50 那就再做一个50*50大小的图片,其体积一定比100*100的来的小。

服务器级别的操作:
1. 启用gzip压缩传输, 以apche为例, 对所有text/html,text/css以及javascript类的文件进行压缩传输, 这个可以把你的网页大小压缩至少60%以上,大大提高传输速率,HTTP/1.1开始, 主流的浏览器都支持压缩传输. 注意不要对图片或者类似pdf等已经压缩过的文件启用压缩, 否则会损坏原文件并且非但没减小反而增加了文件大小
参考文章: http://www.samaxes.com/2008/04/htaccess-gzip-and-cache-your-site-for-faster-loading-and-bandwidth-saving/
2. 网页的header响应代码里加入Expires 或者Cache-Control 实现缓存机制, 对于Etag的话,个人建议除非你很了解,否则就不要使用了,一般apache服务器对于真正静态的文件都会自动加上Etag的标记, 是按该文件最后修改时间来生成的一串代码.
3. Header响应增加Last-Modified, 这个也是Google在站长管理工具里建议的, 参看http://www.google.com/support/webmasters/bin/answer.py?hl=en& answer=35769#2 这里需要提一点,如果你希望爬虫只要来了就爬你的页面而不在乎浪费宽带, 可以把Last-Modified设置成即时的. 如果你想节省宽带并起用了Last-Modified header, 请注意对于没有修改过的内容,一定要返回304代码,否则没有太大效果的.
4. 起用CDN加速以及内容分发网络, 一般大网站都有这个服务, 小网站如果没有该预算的话只能放弃.
5. 对于一般不容易变的静态内容比如你的css文件,一些javascript文件, 可以放到单独的域名下面来引用,并注意该域名一定不要对http请求强行设置cookie

用到一些工具包括:
- Firefox插件: FireBug  http://getfirebug.com/ 以及google自己推出的http://code.google.com/speed/page-speed/
- Http header响应检测工具 http://www.seoconsultants.com/tools/headers.asp 以及网页传输压缩检测工具 http://www.whatsmyip.org/http_compression/

从细节处入手, 相信爬虫以及你的用户会越来越喜欢你的网站的。

Leave a Reply