压缩你的PHP、JS、CSS等文本类型代码

众所周知,减少代码在传输中的大小,就能提升页面的传输速度,打开网页也就快 了,这是基于带宽瓶颈的理论,固然服务器速度受到其余不少因素的影响, 有PHP代码执行速度,数据库访问速度,磁盘读写IO速度等,不管怎样,带宽影响是很是大,而受中国电信抑或是中国网通还有其余的一些电信公司的制约,在 服务器网络带宽并不很充裕的条件下,压缩代码传输将会大大节省带宽!javascript

本文讲述经过使用Gzip压缩方式自动压缩相应的代码,在访问者浏览器端会自动还原成代码以便浏览器执行,至于编写代码时的良好风格节省空间的方法不在本文之列。php

GZIP 最先由Jean-loup Gailly和Mark Adler建立,用于UNIX系统的文件压缩。咱们在 LINUX中常常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用很是广泛的一种数据压缩格式,或者说一种文件格式。HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点经常 使用GZIP压缩技术来让用户感觉更快的速度。css

首先测试一下你的网站各个页面是否采用了Gzip压缩,这里有个测试工具html

目前,有两种主流方法实现Gzip压缩。
1、mod_deflate模块java

mod_deflate 模块提供了DEFLATE输出过滤器,容许服务器在将输出内容发送到客户端之前进行压缩(应该也是采用gzip数据格式压缩,deflate是一种压缩算 法)以节约带宽。Apache 1.3.x时代使用mod_gzip模块来实现,Apache2已经内置了mod_deflate模块。数据库

这种方法要求安装了Apache的http服务器软件,而且加载了deflate模块。apache

使用方法:浏览器

在网页发布目录的.htaccess文件中加入:服务器

  1. <ifmodule mod_deflate.c>
  2. AddOutputFilter DEFLATE html htm xml php js css
  3. </ifmodule>

这样就会使得Apache在发布html,xml,php,js,css这样的文件时会采用Gzip方式传输数据,这个方法简单,一劳永逸,但通常使用的虚拟主机并无安装deflate模块,也不必定是Apache的,不过咱们还有办法:网络

2、ob_gzhandler函数
主机要求:支持PHP,PHP版本在4.0.4以上,安装有zlib库

对于PHP文件传输中压缩,只需在原来的 PHP 文件首行加上

  1. <?php if(extension_loaded(zlib)){ob_start(ob_gzhandler);}?>

而且在结尾加上

  1. <?php if(extension_loaded(zlib)){ob_end_flush();}?>

复制时还原为正规的PHP格式。

对于js文件,则在原来js文件的首行加上

  1. <?php if(extension_loaded(zlib)){ob_start(ob_gzhandler);} header(Content-Type: text/javascript); ?>

末尾一样加上

  1. <?php if(extension_loaded(zlib)){ob_end_flush();}?>

而后存为abc.js.PHP这样的文件,而且修改指向这个全部html,PHP等文件。

  1. <script type=text/javascript src=abc.jscharset=utf-8></script>

  1. <script type=text/javascript src=abc.js.php charset=utf-8></script>

对于a.html文件就直接改为a.PHP访问好了,若是要保留原来的URL就 修改.htaccess 伪URL或者创建一个网页跳转吧,而其余的CSS等文本也就依此推算出该怎么改了。

压缩效能说明:jQuery库源代码为50k左右,先写代码时优化,去除空格组合函数等使其减少至26k,再使用GZIP压缩至14k!
再附一张其余网站的压缩效能比较图,图中三种方式都是GZIP,只是执行的方法不一样而已。
gzip.png

相关文章
相关标签/搜索