使用站长工具查询网站,发现自己网站的访问速度明显低于朋友的网站。而都是使用阿里云,网站速度却差别很大。

使用百度统计,分析了一下网站速度,百度也给了一下建议方法。

诊断建议

优化了一下,速度稍微好了一些。记录下自己的优化方法。

1.合并压缩css和js

合并文件能够将多次请求变一次。同时压缩文件大小,也能加快速度。网上有很多压缩工具可以直接使用。

2.使用css sprites合并图片

一个网站经常使用小图标,这些小图片占用了大量的HTTP请求,因此可以采用sprites的方式把所有的图片合并成一张图片。

3.将js引用放在文件末尾,js放在外部文件中

将JS代码放置外部文件中,通过JS调用。
JS代码搜索引擎是不能读取的,放一堆在页面中太占地方了,我们同样跟CSS一样放置到外部文件中,通过<script type="text/javascript" language="javascript"src="JS文件路径"></scpirt> 这种形式来调用。
同时文件加载需要时间,放在末尾时,最后加载,不影响主体文件的展示。

4.把你的 js 库文件地址替换成 百度,Google CDN的地址

有的JQuery文件,在自己网站的加载速度比不上百度CDN的速度。可以使用百度等。<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"> </script>而且浏览器会缓存文件,如果用户访问过其他网站,加载过相同的JS,这样就不用重新下载。
根据雅虎的性能建议,把静态资源放到不同的域名下还能加快速度。
附:百度百度开发者中心 http://developer.baidu.com/wiki/index.php?title=docs/cplat/libs

4.服务器开启gzip压缩

Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度
网站是否开启gzip压缩测试工具http://tool.chinaz.com/Gzips
笔者使用nginx服务器。修改nginx.conf添加

1
2
3
4
5
gzip on;
gzip_proxied any;
gzip_types text/plain text/xml text/css application/x-javascript;
gzip_vary on;
gzip_disable "MSIE [1-6]\.(?!.*SV1

5.浏览器缓存你的 js 和 CSS 文件,设置服务器文件过期时间

服务器是否开启缓存测试工具http://pagespeed.webkaka.com

笔者使用Nginx,设置Js、css等文件的过期时间需要打开配置文件/nginx.conf,加入:

缓存动态页面,缓存过期时间nginx.conf 在http下 配置内容:

1
proxy_cache_path /www/ levels=1:2 keys_zone=Z:10m inactive=1m max_size=30g;

这一句定义一个区域,名字是 Z ,在内存中的空间为10MB ,硬盘中的最大空间为 30G;
inactive=1m 是,1分钟之后缓存失效 ,从新从源服务器请求
这里纠正一下,inactive=1m 如果缓存1分钟没人访问,nginx 会删除掉这些缓存

1
2
3
4
#在server下配置,注意,如果使用伪静态,去除下面的html
location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
expires 30d;#30天
}

如果过期时间为小时,则用“h”,如“expires 1h;”表示文件缓存在1小时后过期

原理:nginx通过expires指令来设置浏览器的Header
语法: expires [time|epoch|max|off]
默认值: expires off
作用域: http, server, location

使用本指令可以控制HTTP应答中的“Expires”和“Cache-Control”的头标,(起到控制页面缓存的作用)。
可以在time值中使用正数或负数。“Expires”头标的值将通过当前系统时间加上您设定的 time 值来获得。
epoch 指定“Expires”的值为 1 January, 1970, 00:00:01 GMT。
max 指定“Expires”的值为 31 December 2037 23:59:59 GMT,“Cache-Control”的值为10年。
-1 指定“Expires”的值为服务器当前时间;-1s,表示永远过期,即不缓存文件。

6.优化图片大小

图片可以说是影响网页加载速度最大的因素,在保证图片质量的前提下,尽量将图片的尺寸降低,
jpg是一种有损压缩格式,而png虽然是无损的,但缺憾是体积颇大。为了减少图片体积达到最快的下载速度,每一张图片上传前应该优化一下体积。最好使用GIF或JPG格式的图片

8.页面静态化

有些内容可以静态化就将其静态化,以减少服务器的负担。 如用图片代替flash,这对SEO也有好处。