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

相关文章
|
21小时前
|
JavaScript 前端开发 测试技术
编写JavaScript模块化代码主要涉及将代码分割成不同的文件或模块,每个模块负责处理特定的功能或任务
【5月更文挑战第10天】编写JavaScript模块化代码最佳实践:使用ES6模块或CommonJS(Node.js),组织逻辑相关模块,避免全局变量,封装细节。利用命名空间和目录结构,借助Webpack处理浏览器环境的模块。编写文档和注释,编写单元测试以确保代码质量。通过这些方法提升代码的可读性和可维护性。
7 3
|
2天前
|
前端开发 JavaScript 索引
CSS常见用法 以及JS基础语法
CSS常见用法 以及JS基础语法
10 0
|
4天前
|
JavaScript 前端开发
js和css以及js制作弹窗
js和css以及js制作弹窗
10 1
|
8天前
|
JSON JavaScript 前端开发
使用JavaScript和XLSX.js将数据导出为Excel文件
使用JavaScript和XLSX.js将数据导出为Excel文件
20 0
|
10天前
|
编解码 前端开发 JavaScript
【专栏:HTML与CSS实战项目篇】打造一个动态新闻网站
【4月更文挑战第30天】构建动态新闻网站,运用HTML和CSS提升编程技能和网页设计理解。项目包括首页、新闻列表页和详情页,设计简洁易用,包含顶部导航、轮播图和新闻列表。页面布局注重吸引力和易用性,色彩搭配选用冷色调为主,辅以亮色点缀。字体选择清晰易读,布局保持整洁。交互效果如轮播图、导航栏高亮和响应式设计增强用户体验。本文提供基础新闻网站构建指南,为进一步功能扩展和优化打下基础。
|
10天前
|
编解码 前端开发 UED
【专栏:HTML与CSS实践篇】响应式网站开发实战
【4月更文挑战第30天】本文探讨了响应式网站开发,它能根据用户设备自动调整布局,提供最佳浏览体验。通过HTML和CSS,利用媒体查询、Flexbox和百分比宽度等技术实现响应式设计。媒体查询按屏幕尺寸定义CSS规则,Flexbox处理元素排列。文章通过新闻网站首页设计实例,展示了如何应用这些理论,包括使用Flexbox设计导航栏,使用媒体查询调整轮播图和内容区域,以及创建自适应页脚。遵循移动优先原则,关注性能优化和用户体验,响应式设计是前端开发的关键,为多设备用户提供优质浏览体验。
|
10天前
|
前端开发 搜索推荐 SEO
【专栏:HTML 与 CSS 实践篇】使用 HTML 与 CSS 构建个人博客网站
【4月更文挑战第30天】本文介绍了使用HTML和CSS构建个性化个人博客网站的步骤。首先,规划设计网站主题、风格和结构;接着,利用HTML搭建首页、文章列表页和文章详情页的结构;然后,通过CSS设计整体风格、布局和交互效果;填充内容并进行SEO优化;最后,通过实际案例展示HTML和CSS的应用。构建博客网站不仅是展示自我和分享知识的平台,也是提升技能和创意实践的好机会。
|
12天前
|
Rust JavaScript 安全
🚀JS使用Wasm为你的文件MD5计算装上火箭引擎🚀
🚀JS使用Wasm为你的文件MD5计算装上火箭引擎🚀
|
12天前
|
运维 JavaScript Java
Serverless 应用引擎产品使用之阿里云Serverless函数计算中,在Node.js环境中执行jar文件如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
19 0
|
18天前
|
JavaScript
浏览器插件crx文件--JS混淆与解密
浏览器插件crx文件--JS混淆与解密
19 0