[转载]如何优化一个网站使之提高访问速度–更新20120216 – 前方2012 – 博客园.
最近公司开始考核企业站下所有站点,首先从itpub开始进行。为此,开始学习关于如何 优化一个网站使之提高访问速度这方面的知识。得知page speed 是个不错的工具,就下载下来了。介绍下这个工具吧,Page Speed 是开源 Firefox/Firebug 插件。网站管理员和网络开发人员可以使用 Page Speed 来评估他们网页的性能,并获得有关如何改进性能的建议。对网站的网络服务器配置和前端代码执行若干测试。这些测试基于一组已知可增强网页性能的最佳实践。在网页上运行 Page Speed 的网站管理员会获得一组针对各网页的分数,以及有关如何改善网页性能的有用建议。它会使你的网站更快速,减少带宽成本。
下面以我们的itpub站点为列简要说下:
1 首先你得安装这个插件,具体怎么按,略过;
2 安装后,按F12出现下图
3 点击上图花圈的 出现下图:
这个82/100是你这个站按照page speed的考核获得分数
自己决定还是不错的。
黄色的表示 警告 可以进一步优化的
绿色的表示做的不错
红色的表示做的不行需要优化了
(itpub没有红色的 这点做的还是不错的)
4 看下“启用keep-alive” 关于keep-alive 我会在我的另外一篇博文中着重写下。待续
说明it168.com这台主机需要启用keep-alive,可是这是其他项目组的主机,我这边无权修改。所以,在这说下,以后非自己管辖的主机,就直接pass了不管。
5 说下下面的压缩JavaScript
pagespeed给你的建议是 进行压缩以下的2个js。你点击后面的op…它会给你生成个压缩后的js。然后你可以替换原先的js即可。这地方只说明怎么做。当然了JQuery也有min版的压缩后的js。
6 上CDN
其实做了这些 还有个更重要的方面,如果你的公司没钱的话,可以按照上面的来做。如果公司有钱,可以加动态CDN
明后天开始给ITPUB上动态CDN,同时对图片 附件 分离出来用单独的域名。目前首页首屏时间为3.156s
希望在上完CDN后网速会得到很大的提高!!!
===============================================================================================
这里说下关于性能优化技巧方面一些认识,也是网上传的沸沸扬扬的“军规”:
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 ); } |
完