对网站中的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模板的话也是一样,都可以拿出来的,如果没用模板的话也是可以的,在这里只是表达一种思想。

时间: 2024-10-03 04:19:50

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

Yii2中使用asset压缩js,css文件的方法_php实例

官网文档 http://www.yiiframework.com/doc-2.0/guide-structure-assets.html yii目录下运行 asset/template assets.php 生成assets.php,这是一个配置模板,并修改如下 <?php /** * Configuration file for the "yii asset" console command. */ // In the console environment, some pat

Yii2中使用asset压缩js,css文件的方法

官网文档 http://www.yiiframework.com/doc-2.0/guide-structure-assets.html yii目录下运行 asset/template assets.php 生成assets.php,这是一个配置模板,并修改如下 <?php /** * Configuration file for the "yii asset" console command. */ // In the console environment, some pat

如何改变网站模板调用的CSS文件换肤

  这一个方法的灵活性比较高,每套皮肤可以有自己的布局,有自己的个性.实现:比如模板中有一个标识$Subject,程序代码会把它替换成文章标题,然后有一个标识块<!- Loop[ArticleList]--><h1>$Subject</h1><div>$Content</div><!--/Loop-->,程序代码会把它替换成一个文章列表,最后输出处理完所有标识符的内容. 通常,我们会缓存读取到的模板内容,但字符串的替换始终不可避免,或

YUICompressor+ANT压缩Java Web工程前端js/css文件

最近team里有个jsp工程想要做一些性能上的优化, 需要对工程里的前端部分(主要是js和css)做一些压缩(这是一个老旧重的工程,重构的成本非常大,也没有人力,只能一步一步去优化).想到与传统ANT工具结合的比较好的yuicompressor. yuicompressor下载 下载地址: http://maven.aliyun.com/nexus/service/local/repositories/central/content/com/yahoo/platform/yui/yuicompr

常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数_javascript技巧

为了方便资源管理和提升工作效率,常用的js和css文件的加载应该放在一个统一文件里面完成,也方便后续的资源维护.所以我用js写了以下方法,存放在"sourceController.js"文件内. function sourceController(){ var root = ""; var cssCount = 0; // css加载计数器 var jsCount = 0; // js加载计数器 this.callfunc = null; // 回调函数 this.

Maven无法将YUICompressor插件压缩后的js/css文件放到输出文件夹中

YUI Compressor Maven插件可以压缩/合并js或css文件,经常用在Maven项目中,但最近发现在wabapp中执行了 mvn install 命令进行发布之后,终端中显示插件已经执行了压缩的动作,但在输出文件夹或者war包中js和css文件都还是未压缩的原始文件. 项目./pom.xml文件相关内容如下:  代码如下 复制代码  <project>      <!-- 定义全局的变量 -->    <properties>      <!-- 编

ASP.NET MVC4之js css文件合并功能(3)_实用技巧

MVC4增加了一些新功能,接下来,我们来研究下MVC4中的新增功能,我们在新建一个MVC4项目的时候,会发现在项目下多出了一个App_Start文件夹,文件夹下面有4个文件,BundleConfig.cs,FilterConfig.cs,RouteConfig.cs,WebApiConfig.cs,其中BundleConfig.cs文件就是我们这一节要讲的的文件. 众所周知,浏览器在向服务器发送请求的时候,请求的文件连接数量是有限制的.使用BundleConfig可以将多个文件请求和并成一个请求

javascript include/import 动态加载js/css文件方法总结

第一种:一般用在外部CSS文件中加载必须的文件  程序代码  代码如下 复制代码 @import url(style.css); /*只能用在CSS文件中或者style标签中*/ 第二种:简单的在页面中加载一个外部CSS文件  程序代码  代码如下 复制代码 document.createStyleSheet(cssFile); 第三种:用createElement方法创建CSS的Link标签  程序代码  代码如下 复制代码 var head = document.getElementsByT

如何使用jquery动态加载js,css文件实现代码_jquery

使用jquery动态加载js,css文件 复制代码 代码如下: $.extend({ includePath: '', include: function(file) { var files = typeof file == "string" ? [file]:file; for (var i = 0; i < files.length; i++) { var name = files[i].replace(/^\s|\s$/g, ""); var att =