对网站中的js,css文件进行打包

一,为什么要用smarty进行打包

apache中也有给js,css这样的静态文件进行打包压缩的模块,但是本文所说的不是以这种方式进行的打包,而是和smarty结合的方式来把网站中的js,css文件进行打包。

为什么要进行打包呢,主要目的是为了合理的管理自己的代码 。现在有好多网站,你查看一下网站的源码的话,你会发现网站的头部有大量的JS文件和CSS文件,网站的尾部也有可能有大量的JS文件。以webqq为例吧:

Java代码   收藏代码
  1. <script type="text/javascript" src="js/util.js?20100429001"></script>  
  2. <script type="text/javascript" src="js/webeditor.js?20100429001"></script>  
  3. <script type="text/javascript" src="js/helptip.js?20100429001"></script>  
  4. <script type="text/javascript" src="js/window.js?20100429001"></script>  
  5. <script type="text/javascript" src="js/main-panel.js?20100611001"></script>  
  6. <!-- this script is for flashplayer version detection -->  
  7. <script type="text/javascript" src="js/fp_detect.js"></script>  
  8. <!--script type="text/javascript" src="js/tab-msgbox.js?20090311"></script-->  
  9. <script type="text/javascript" src="js/tab-buddystate.js?20090927001"></script>  
  10. <!--script type="text/javascript" src="js/tab-buddyimpression.js?20090311"></script-->  
  11. <script type="text/javascript" src="js/tab-addbuddy.js?20091210001"></script>  
  12. <script type="text/javascript" src="js/main.js?20100611001"></script>  
  13. <script language="javascript" src="http://pingjs.qq.com/ping.js"></script>  

上面的代码是放在webqq的底部,看着很不爽,如果只显示一个话,看着是不是很舒服呢?结果是肯定的。

二,用一个JS文件来包涵多个JS文件

1,用function

Java代码   收藏代码
  1. function include(filename) {  
  2.  document.write("<script language='JavaScript' type='text/javascript' src='" + filename + "'></script>");  
  3. }  
  4.   
  5. include("js/jquery-1.3.2.js");  
  6. include("js/test.js");  

2,用数组

Java代码   收藏代码
  1. var jsarray = new Array();  
  2. jsarray[0] = "js/jquery-1.3.2.js";  
  3. jsarray[1] = "js/test.js";  
  4. for(i=0;i<jsarray.length;i++){  
  5.  document.write("<script type='text/javascript' src='"+jsarray[i]+"'></script>");  
  6. }  

 三,模板文件

Java代码   收藏代码
  1. {foreach from=$jsArr item=js}  
  2. <script src="{$js}" type="text/javascript"></script>  
  3. {/foreach}  

 四,调用模板的php文件

Java代码   收藏代码
  1. public function addCss($css) {  
  2.  if (!is_array($css)) {  
  3.  $this->tpl->append('cssArr', $css);  
  4.  } else {  
  5.  $this->tpl->append('cssArr', $css, true);  
  6.  }  
  7.  }  
  8.   
  9.  public function addJs($js) {  
  10.  if (!is_array($js)) {  
  11.  $this->tpl->append('jsArr', $js);  
  12.  } else {  
  13.  $this->tpl->append('jsArr', $js, true);  
  14.  }  
  15.  }  
  16. $this->addJs("./js/test.pkg.js");   

五,总结

这样做的好处是什么呢,个人分析了以下二点:

1,把一个页面包涵的js,css文件转变成一个,代码简单

2,把这些js,css放到一个js文件里面,便于管理,如果我想加一个js,减一个js很方便,你就不用在去改模板了,如果模板多的话,你都要一个页面,一个页面去改的话,很烦人的。

如果用的不是smarty模板的话也是一样,都可以拿出来的,如果没用模板的话也是可以的,在这里只是表达一种思想。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
因为只允许传60M以下就只罗列以下手册了哈 《 ADOdb.Manual Ajax文手册 Apache2.2 CodeIgniter css2 css20 css3.0参考手册 HTML and CSS Standard JavaScript 5 JavaScript使用手册 javascript源码大全 jQueryDocXML2CHM-090223 JQuery文手册 Linux命令大全 linux自学教材 mysql5.1 php php5 PHP5面向对象编程 phplib php_manual_zh php文函数手册 PHP编码规范 PHP设计模式介绍 smarty大师兄 smarty完全文手册 smarty手册 ThinkPHP2.0完全开发手册 zendFramework Zend_Framework_Zh 《JavaScript 语言参考》文版 二进制、八进制、十六进制 样式表滤镜手册 》 下面是所有手册包括上传手册,未上传手册 ADOdb.Manual ADO手册 Ajax文手册 Android文API Apache2.2 aspnet4 CodeIgniter CSS 2.0样式表文手册 css2 css20 css3.0参考手册 C、C++语言参考手册 deelx_zh Dev+WindowsForms_涓昏鎺т欢 (2) Dev+WindowsForms_涓昏鎺т欢 DHTML Ext 3.0 文API highchart HTML and CSS Standard JavaScript 5 JavaScript使用手册 javascript源码大全 Java设计模式(疯狂Java联盟版) jQuery 1.7 JQuery+1.5文API jQuery1.10.3_API文手册 (1) jQuery1.10.3_API文手册 jquery1.7.2_20120420文版 jquery1.7_20111120 jquery1.7_20111204 jquery1.7_20111204文API jquery1.8.3 jquery1.8.3_20121129 jQuery1.8.3_20121215 jQueryDocXML2CHM-090223 jQuery_1.4.1_文参考 jQuery_CHM_1.4.4 JQuery文手册 jQuery指南 Linq (2) Linq Linux命令大全 linux自学教材 mysql5.1 NET Framework 4.0 常用类库参考手册(节选).NET Framework 4.0 常用类库参考手册(节选) NHibernate文档 php (2) php php5 PHP5面向对象编程 phplib php_manual_zh php文函数手册 PHP编码规范 PHP设计模式介绍 smarty大师兄 smarty完全文手册 smarty手册 Spring·NET框架参考文档》文版 SQL Server精华 (CHM) ThinkPHP2.0完全开发手册 W3C 无错误 无广告 版本 W3C+Javascript+2010-07-13 W3CSchool (2) W3CSchool W3CSchool教程 w3c离线网页版 (2) w3c离线网页版 w3school在线教程离线版20120928 (2) w3school在线教程离线版20120928 Windows 8 Metro App开发 Windows 核心编程 zendFramework Zend_Framework_Zh 《JavaScript 语言参考》文版 二进制、八进制、十六进制 史上最全的IT面试题集 易语言专用API函数命令8 样式表滤镜手册 正则表达式30分钟入门教程 精美购物电子书 花之盟原型 (2) 花之盟原型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值