通过gzip来压缩js文件

又是来自咕噜咕噜。为什么要压缩js文件?很明显,压缩后,文件个头小了,下载就快了,网页也就能在更短的时间内呈现在我们的面前,正常情况下,gzip对js的压缩比能达到3:1左右,以ext-all.js为例,源文件大小:463k,经过gzip压缩后的个头为125k,几乎到了4:1。

PHP代码
  1. <?php    
  2.     //参数可以是数组或者字符串   
  3.     gzip_file("ext-all.js");   
  4.     
  5.     function gzip_file($file_s){   
  6.         if(!is_array($file_s)){   
  7.             $files[] = $file_s;   
  8.         }   
  9.         else{   
  10.             $files = $file_s;   
  11.         }   
  12.     header("Expires:".gmdate("D, d M Y H:i:s", time()+15360000)."GMT");    
  13.     header("Cache-Control: max-age=315360000");    
  14.     $mtime = filemtime($file);    
  15.     $gmt_mtime = gmdate(‘D, d M Y H:i:s’, $mtime) . ‘ GMT’;    
  16.     header("Last-Modified:" . $gmt_mtime);    
  17.     ob_start(‘ob_gzhandler’);   
  18.     foreach($files as $file){   
  19.     $ext = array_pop(explode(‘.’, $file));    
  20.     switch ($ext){    
  21.     case ‘css’:    
  22.      header("Content-type: text/css");    
  23.      break;    
  24.     case ‘js’ :    
  25.      header("Content-type: text/javascript");    
  26.      break;    
  27.     case ‘gif’:    
  28.      header("Content-type: image/gif");    
  29.      break;    
  30.     case ‘jpg’:    
  31.      header("Content-type: image/jpeg");    
  32.      break;    
  33.     case ‘png’:    
  34.      header("Content-type: image/png");    
  35.      break;    
  36.     default:    
  37.      header("Content-type: text/plain");    
  38.     }    
  39.     echo implode(”, file($file));    
  40.     }   
  41.     ob_end_flush();    
  42. }   
  43. ?>   

假设将上面的代码存储为ext-all.php
那么引用的时候只需

PHP代码
  1. include("ext-all.php")  

就能实现对ext-all.js的压缩,当然前提是服务端支持zlib。

Tags: gzip

« 上一篇 | 下一篇 »

只显示10条记录相关文章

PHP使用zlib扩展实现页面GZIP压缩输出 (浏览: 590, 评论: 0)
加快php程序的输出 (浏览: 1134, 评论: 0)
PHP的压缩输出gzip (浏览: 1991, 评论: 0)

Trackbacks

点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5

发表评论

评论内容 (必填):