服务端合并和压缩JS和CSS文件
来源:随网之舞 发布时间:2010-06-11 18:23:00
Web性能优化最佳实践中最重要的一条是减少HTTP请求,它也是YSlow中比重最大的一条规则。减少HTTP请求的方案主要有合并JavaScript和CSS文件、CSS Sprites、图像映射(Image Map)和使用Data URI来编码图片。CSS Sprites和图像映射现在已经随处可见了,但由于IE6和IE7不支持Data URI以及性能问题,这项技术尚未大量使用。目前大部分网页中的JavaScript和CSS文件数量和开发时一致,少量的网页会根据实际情况采取本地合并,这些合并中相当多的是有选择地手动完成,每次新的合并都需要重新在本地完成并上传到服务器,比较的随意和繁琐,同样文件的压缩也有类似的情况。而利用服务端的合并和压缩,我们就可以按照开发的逻辑尽可能让文件的颗粒度变小,利用网页中URL的规则来自动实现文件的合并和压缩,这会相当的灵活和高效。
YUI Combo Handler
2008年7月YUI Team宣布在YAHOO! CDN上对YUI JavaScript组件提供Combo Handler服务。Combo Handler是Yahoo!开发的一个Apache模块,它实现了开发人员简单方便地通过URL来合并JavaScript和CSS文件,从而大大减少文件请求数。比如在页面上使用YUI2的Rich Text Editor组件需要引入多个JavaScript文件,常用方式如下:
<script src="http://yui.yahooapis.com/2.8.0r4/build/yahoo-dom-event/yahoo-dom-event.js"></script>
<script src="http://yui.yahooapis.com/2.8.0r4/build/container/container_core-min.js"></script>
<script src="http://yui.yahooapis.com/2.8.0r4/build/menu/menu-min.js"></script>
<script src="http://yui.yahooapis.com/2.8.0r4/build/element/element-min.js"></script>
<script src="http://yui.yahooapis.com/2.8.0r4/build/button/button-min.js"></script>
<script src="http://yui.yahooapis.com/2.8.0r4/build/editor/editor-min.js"></script>
而使用Combo Handler服务之后,则上述的代码可以写为:
<script src="http://yui.yahooapis.com/combo?
2.8.0r4/build/yahoo-dom-event/yahoo-dom-event.js&
2.8.0r4/build/container/container_core-min.js&
2.8.0r4/build/menu/menu-min.js&
2.8.0r4/build/element/element-min.js&
2.8.0r4/build/button/button-min.js&
2.8.0r4/build/editor/editor-min.js"></script>
除了代码的可读性稍稍有一点点降低外,使用Combo Handler服务大大的降低了HTTP请求数,同时也减少了URL代码量,这对于Web性能优化来讲至关重要。所以,随后YUI从2.6.0开始,其核心组件YUI Loader内置了Combo Handling功能,即使用YUI Loader时,通过配置combine属性就可以把要加载的多个JavaScript或CSS文件按照使用Combo Handler服务的形式合并起来,这时只要静态文件的服务器支持Combo Handler就行了。在YUI中当combine配置为true时,CDN默认是使用Yahoo! CDN(http://yui.yahooapis.com),所以没有任何问题。这正是YUI最迷人的地方之一。
遗憾的是http://yui.yahooapis.com在中国的速度并不佳,本来中国雅虎提供http://cn.yui.yahooapis.com/ ,但尚未提供Combo Handler服务,同时因种种原因,其更新在YUI 2.7.0之后就停滞了。更糟糕的是Yahoo!开发的支持Combo Handler的Apache模块虽然据传有计划开源,但至少现在依旧是私有技术,要使用就需要自己实现类似功能,所以国内类似技术的应用并不太多。


猜你喜欢
- 前言:我们知道,Docker 主要是基于 Namespace、cgroups 和联合文件系统这三大核心技术实现的。前面的课时我详细讲解了 N
- 详解负载均衡实现一个域名对应多个IP地址使用负载均衡实现,传统和常规做法,其他方式需要特殊处理。(dns轮询,或者自己做解析)1、一个域名设
- 安装好Serv-U初次运行时,会自动弹出创建域和账户操作向导窗口。由于使用向导创建的账户会带来一些未知的安全问题,因此在这里建议单击“取消”
- Goolge这几天开始更新了,大部分网页的PR值都有了变化,排名也有了一定幅度的调整。突然想起上周SEO培训中一个学员提到的一个关于搜索引擎
- 最近在河南电视台参加一档创意节目时,笔者有幸碰到了国内的营销大师——叶茂中先生,他在指导选手时的一番话让笔者回味至今,“少就是牺牲,少就是价
- 本文讲述了Apache本地二级域名配置方法。分享给大家供大家参考,具体如下:我们在本地调试web程序时,常有很多不同的项目。不同的项目,我们
- 启用并配置文件服务Windows Server 2003的管理工具中有一项功能叫做“管理您的服务器”,启动该工具之后,可以看到当前服务器上启
- 5月25日消息,据《华尔街日报》报道,谷歌在周一首次披露了与搜索和内容发布商分享广告收入的方式。此举是谷歌针对网站发布商和监管机构要求其提高
- 由于最近没有上班比较闲,就建了一个机电B2B网站,程序不是我写的(我是做美工的),我是在淘宝买上来的,由于程序是ASP的,只要改一下CONN
- 绝对大独家哦,有朋友提供了一组汪涵、钱枫、田源、俞灏明等天天兄弟们在美国微软总部的照片。非常轻松好玩。特意拿出来和网友们分享。这是《天天向上
- 广告颜色是广告优化中一个富有创造性的要素。 Google AdSense 帐户中不仅提供了调色板供您选择,您还可以自定义广告颜色。广告颜色的
- 在UCenter Home中,有显示论坛feed事件的功能,以增加用户的黏性,如果不显示可以按下面的步骤进行排查:1、UCenter 后台检
- 北京时间3月3日消息 据国外媒体报道,雅虎CEO卡罗尔·巴茨周二在庆祝雅虎成立15周年时表示,公司要实现复兴需要多年时间。她希望投资者记住,
- 有Godaddy主机用户或许还不了解ColdFusion还有ColdFusion DNS,下面给大家介绍下什么是ColdFusion? 如同
- 有这样一句话:国际化就是本土化,本土化是国际化的核心。这句话虽然简单,但是却蕴含着很多道理。如果一家企业或一种产品想要打入国际市场,就一定要
- RHEL4中的vsftpd在编译时已经支持tcp_wrappers,因此可以利用tcp_wrappers实现主机访问控制。实验之前,首先说下
- 背景使用idea配合docker,实现从javaweb开发,部署,运行全过程。环境:已经配置好的docker、已经安装好的mysql8容器、
- 不说话的站长租一间房子,拉一条网线,借钱买一台电脑,很多个人站长就这样开始了自己的站长生涯。站长是没有早晨的,当早市上人潮汹涌的时候,他们才
- 大家可以看首页下面的图文混排栏目块,全部是用的固定栏目,也就是先做出模板,每个栏目都是固定的,无法循环生成.这样就有个问题,标签是不是要一个
- 一、硬盘分区与操作系统的安装硬盘分区 总的来讲在硬盘分区上面没什么值得深入剖析的地方,无非就是一个在分区前做好规划知道要去放些什么东西, 如