如何优化一个网站使之提高访问速度

转自http://www.cnblogs.com/wangjiafang/archive/2012/02/15/2352602.html

这里说下关于性能优化技巧方面一些认识,也是网上传的沸沸扬扬的“军规”:

1 启用gzip。

gzip压缩是一种开发的压缩算法,目前的主流浏览器(Firefox, Safari, Chrome, IE4及以上)与主流服务器(Apache, Lighttpd, Nginx)均对其有很好的支持。gzip压缩是通过HTTP 1.1协议中的Content-Encoding : gzip来进行标记说明,其可以明显减少文本文件的大小,从而节省带宽和加载时间。我做过的一个实验,发现启用gzip后,jquery 1.2.6 minify版本的大小从54.4k减少到16k,减少了70%。gzip适用的情况包括:

HTML\CSS\JavaScript文件,gzip算法对于文本文件的效率比较高,而jpg/gif/png/pdf等二进制文件本身已经进行了一次压缩,再使用gzip的成效已经不明显了。而且gzip压缩需要消耗服务器的资源,而解压缩需要消耗浏览器的资源,对于比较大的二进制文件具有非常高的性能消耗;
尽量使用一种大小写方式,要么全部大写,要么全部小写。学过数据结构和算法的同学一定知道压缩其本身就是对冗余信息熵进行压缩,如何数据原素的类型种类太多,其信息冗余度会降低,从而压缩率降低;
过小的文件(通常小于150个字节)不宜进行gzip压缩,因为gzip会在文件头加入相关信息,对于小文件反而会增加文件的长度;

(以上文字摘自http://www.yakecan.com/archives/3 我表示认同)

那么怎么看你的服务器是否开启了呢?

以我这边的一台服务器为例说明下,我的web服务器是nginx的,就以nginx说下:

打开nginx的配置文件,你会看到相关的gzip的设置,如果没有的话,请你们公司的运维同事设置启用即可

 

types 是使用哪些类型的文件使用到gzip。

 

你可以用站长工具查看你的站点是否使用gzip了,如使用http://tool.chinaz.com/Gzips/可以查看

以我的一个站点为例,

 

大家可以看到这个结果就知道了。

 2 最小化JS和图片

    你可以用一个压缩工具压缩即可。对于JavaScript文件本身具有非常大的优化空间。所谓JavaScript压缩,就是通过一些工具将函数、变量名进行优化(其实就是尽可能缩短变量名长度),消除多余字符(比如空格、换行符、注释等),最终得到的代码可以在分析和执行上得到性能提升。压缩后得到的代码对于机器而言是可读的,对于人来说就不行了,因为文件内容已经面目全非。所以压缩一般用于生产期的代码,不能使用于开发期。

3 JavaScript最小化

   比如jquery.form.js,最小化后减少11.9kb,减少54.8%的空间。点击minified version,在新窗口中可以看到Page Speed为你优化好的版本,直接更新到服务器就可以了。

4 启用浏览器缓存

  这是经常使用的方法。当请求的资源在浏览器本地得到缓存后,第二次请求这些内容就可以从直接缓存中取出,减少了连线的HTTP请求。

5 JavaScript延迟加载

   通常浏览器在解析HTML时遇到JS文件会先下载,解析执行后才会下载后面的内容,期间自然会造成一定的延时。为了提高性能,尽可能将JS文件的位置后移,如果可能,还可以通过部分代码进行异步加载。另外,对于JS和CSS在必须放置在一起情况,需要报JS放置在CSS之后,这样CSS与JS文件可以同步下载。

6 文件拼接,就是可以合并的文件,就合并成一个文件

7 减少HTTP请求。这个是同上面的几个一起使用的。

8 只加载head里的部分js。其他的可以放到底部加载。

9 压缩HTML代码。 

有个不错的方法就是压缩HTML,压缩html 其实就是:清除换行符,清除制表符,去掉注释标记  。它所起到的作用不可小视。

现提供PHP 压缩HTML函数。请大家不妨试试看。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
  * 压缩html : 清除换行符,清除制表符,去掉注释标记 
  * @param   $string 
  * @return  压缩后的$string
  * */
function compress_html( $string ) { 
     $string = str_replace ( "\r\n" , '' , $string ); //清除换行符 
     $string = str_replace ( "\n" , '' , $string ); //清除换行符 
     $string = str_replace ( "\t" , '' , $string ); //清除制表符 
     $pattern = array
                     "/> *([^ ]*) *</" , //去掉注释标记 
                     "/[\s]+/"
                     "/<!--[^!]*-->/"
                     "/\" /"
                     "/ \"/"
                     "'/\*[^*]*\*/'" 
                     ); 
     $replace = array
                     ">\\1<"
                     " "
                     ""
                     "\""
                     "\""
                     "" 
                     ); 
     return preg_replace( $pattern , $replace , $string ); 
}

转载于:https://www.cnblogs.com/souris/archive/2012/02/17/2356591.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值