- 浏览: 316402 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
完善自我:
支持一下!
揭秘IT人才特点:中美印日四国程序员比较 -
悲剧了:
好文,看玩thinking in java的提到的异常处理,看 ...
高效的Java异常处理框架(转) -
yin_bp:
开源框架bbossgroups页支持组件异步方法调用哦,详情请 ...
Spring 3中异步方法调用 -
flyjava:
sun的悲哀
Apache怒了,威胁说要离开JCP
Yahoo!曾经针对网站速度体验提出了34条宝贵的准则《Best Practices for Speeding Up Your Web Site 》,而Yslow 正是按照这些准则,评测一个网站在速度体验上的优化程度的Firefox插件,将34条精简为更加直观的13条,并针对每一条给出从F~A的评分以及最终的总分。
当然从评测得到的只能是一个分数以及建议,如何改进还是要靠自己,这里要谈的就是实实在在的如何针对每一条进行优化:
1. Make fewer HTTP requests / 减少Http请求数
一个网页不可避免的要引入大量的外部文件:Javascript、css、背景图片……由于Http协议的无状态性,用户的每一次访问,都会重新向服务器请求所有文件,而大量Http请求的累加,正是影响网站速度的最主要原因。
所以这里的解决方法只有一个:合并。最理想的情况莫过于一个网页只包含一个css,一个js,一张背景图。
合并Js和Css文件很好理解,背景图片要怎么合并?这里采用的主要方法是CSS Sprites,简单说就是把所有的图片拼接成一张大图,在不同的Css里指定背景图坐标来显示不同图片。具体可以参考Dave Shea的Image Slicing’s Kiss of Death 一文,还有网站提供了在线的CSS Sprites服务 ,只需要上传小图片,就可以获得拼接后的大图以及相应坐标。
不过在当前越来越多动辄包含10余个文件的开发框架面前,减少Http请求数也变得越来越难。一直都认为所谓框架,给出的应该是一整套完善的开发思 想,从服务器配置到数据库设计甚至是到UI体验乃至SEO,但现在很多Framework总是各自为战,后台与前端脱节,只在自己的一片领域里提供一定程 度上的方便,没有考虑到最终产品的统合,甚至连基本的代码侵入性问题没有处理好(这里点名批评dojo,恨不得在所有的html标签上印上dojo的章 子),不能不说是一种遗憾。
所以如果网站中采用框架的话,在框架的选择面前,建议多采用轻量级,侵入性低的框架,也是为了日后产品的优化维护着想。
2. Use a CDN / 使用CDN
CDN(Content delivery network)内容分发网络,能够智能根据网络节点情况选择服务节点,大型网站部署时尤为重要。不过这属于硬件级别的解决方案,我们没有条件配置CDN的时候,可以自行设置忽略这一项评测。
在Firefox地址栏键入about:config,然后新建一个字符串,名称为 extensions.firebug.yslow.cdnHostnames,值为所要评测网站的域名,多个设置用逗号分隔。例如我的设置就是 allo.ave7.net,localhost
3. Add an Expires header / 为文件头指定Expires
Expires是浏览器Cache机制的一部分,浏览器的缓存取决于Header中的四个值: Cache-Control, Expires, Last-Modified, ETag。这个项目的考评主要针对Cache-Control和Expires。
具体的Cache原理不是本文所涉及的,有兴趣的同学可以看看Caching Tutorial 一文。为了优化这个选项,我们所要做的是对站内所有的文件有针对性的设置Cache-Control和Expires,这里基于Apache主机举例:
首先开启mod_header 模块,在httpd.conf中取消
LoadModule headers_module modules/mod_headers.so
一行的注释。然后对于图片,文件等不会经常更新的文件设置一个比较长的过期时间
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT" </FilesMatch>
对于Cache-Control可以设置的更加细致一些,这里我对图片,文件设置了1周,对XML,TXT设置了5小时,对html和php文件只设置了1小时。
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Cache-Control "max-age=604800, public" </FilesMatch> <FilesMatch "\.(xml|txt)$"> Header set Cache-Control "max-age=18000, public, must-revalidate" </FilesMatch> <FilesMatch "\.(html|htm|php)$"> Header set Cache-Control "max-age=3600, must-revalidate" </FilesMatch>
另外Expires也可以通过开启mod_expires 来实现,这里不再举例。
4. Gzip components / 启用Gzip压缩
HTTP/1.1支持接收服务器端经过Gzip 压缩的数据,在Apache2中,可以开启mod_deflate 实现。
同样去掉注释
LoadModule deflate_module modules/mod_deflate.so
然后对所有文本类文件添加Gzip处理
DeflateCompressionLevel 3 <FilesMatch "\.(php|htm|html|js|css)$"> SetOutputFilter DEFLATE </FilesMatch>
5. Put CSS at the top / 将Css文件放在头部
很好理解的一条,主要是为了避免最后加载Css引起的浏览器白屏,改善用户体验。
6. Put JS at the bottom / 将Js文件放在底部
同样很容易理解,为了让DOM先行加载。
7. Avoid CSS expressions / 避免CSS expressions
CSS expressions可以轻易的引起浏览器假死,也不在W3C规范内,不只是避免,最好完全不要用。
8. Make JS and CSS external / 将Js和Css文件独立
将Js和Css文件单独做成外部文件加载,一则可以功能复用,二则可以生成缓存,当然这一条和第一条要互相参照找出最好的解决方案才是。
9. Reduce DNS lookups / 减少DNS查询
外部文件分散于多个服务器,连接每台服务器都会做一次DNS查询,这一条是针对多服务器的部署。
10. Minify JS / 压缩Js文件
压缩Js文件,Yahoo!官方推荐的工具是JSMin 和YUI Compressor 。
11. Avoid redirects / 避免重定向
每一次的重定向都会重新发送Header请求。所以在Apache下,无比强大的mod_rewrite 是必须要学的。
12. Remove duplicate scripts / 移除重复的脚本
开发中没有规划好,会出现页面中重复引用一个文件的情况,IE中即便是重复引用也会重新向服务器发送一次请求。
13. Configure ETags / 配置ETags
在第三条中已经对浏览器缓存机制中的Cache-Control和Expires进行了配置,这一条评测的是另外两个:Last-Modified和ETag
简单的说,即使设置了文件的期限,浏览器在访问资源时往往会因为Last-Modified和ETag而重新下载整个资源,所以简单的做法是关闭Last-Modified和ETag
在Apache中做如下配置
FileETag None <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css)$"> Header unset Last-Modified </FilesMatch>
最后看看优化后的成果
原文:http://avnpc.com/posts/view/speed_up_website_with_yslow
发表评论
-
Web编程是函数式编程
2010-11-30 13:44 1067任何一位在两个领域里 ... -
如何开发Web应用程序
2010-11-30 13:41 1125这是一个经常被问到的 ... -
设计Web应用程序时要注意可伸缩性
2010-11-26 09:19 940Max Indelicato是一位软件 ... -
Web 2.0应用客户端性能问题十大根源
2010-11-25 20:19 1041Web 2.0应用的推广为用户带来了全新的体验,同时也让开 ... -
HTML压缩(JSP的GZIP实现)
2010-11-24 22:31 4939HTTP 压缩可以大大提高浏览网站的速度,它的 ... -
浏览器加载和渲染html的顺序
2010-11-22 09:45 25771.浏览器加载和渲染html的顺序 1、IE下载的顺序是从上到 ... -
在服务端合并和压缩JavaScript和CSS文件
2010-11-22 09:16 1148Web性能优化最佳实践中最重要的一条是减少HTTP请求 ... -
用 YUI Compressor 压缩和混淆 JS 和 CSS
2010-11-22 09:05 2378一、简介: 目前开发Web应用Javas ... -
如何缓存DWR生成的JS文件
2010-11-18 17:37 1968DWR provides a convenient mec ... -
HTTP状态一览
2010-11-17 22:43 775在网站建设的实际应用中,容易出现很多小小的失误,就像m ... -
两款HTTP流量分析工具的比较:HTTP Watch,Fiddler
2010-11-17 17:26 0做Web开发或者Web分析经常需要查看Http通讯的过程, ... -
了解CSS的查找匹配原理,让CSS更简洁、高效
2010-11-17 16:49 0用了这么多年的CSS,现在才明白CSS的真正匹配原理,不知 ... -
高性能WEB开发 - flush让页面分块,逐步呈现
2010-11-17 16:47 0在处理比较耗时的请求的时候,我们总希望先让用户先 ... -
WEB高性能开发 - 疯狂的HTML压缩
2010-11-17 16:46 0前言: ... -
该如何加载google-analytics(或其他第三方)的JS
2010-11-17 16:44 0很多网站为了获取用户访问网站的统计信息,使用了go ... -
高性能WEB开发 - 页面呈现、重绘、回流。
2010-11-17 15:57 0页面呈现流程 在讨论页面重绘、回流之前。需要 ... -
高性能WEB开发 - JS、CSS的合并、压缩、缓存管理
2010-11-17 15:54 0本篇文章主要讨论下目前JS,CSS 合并、压缩、缓存 ... -
高性能WEB开发- 减少请求,响应的数据量
2010-11-17 15:49 0上一篇中我们说 ... -
高性能WEB开发 - 为什么要减少请求数,如何减少请求数!
2010-11-17 15:42 0http请求头的数据量 我们先分析下 ... -
高性能web开发 - 如何加载JS,JS应该放在什么位置?
2010-11-17 15:39 0外部JS的阻塞下载 所有浏览器在下载JS的时候, ...
相关推荐
通过分析网页的各项指标,Yslow能够给出具体的优化建议,从而提升网站的整体性能。 #### 二、Yslow工具介绍 Yslow是一款基于Firefox浏览器的扩展程序,它可以集成到Firebug中使用。它通过分析网页的各项性能指标来...
yslow作为一款强大的前端性能分析工具,为优化网站速度提供了科学的依据和实用的建议。通过深入理解并应用yslow的评估规则,开发者可以显著提升网页的加载速度,提高用户体验,同时降低服务器负载。对于任何致力于...
本文将详细介绍YSlow的安装、使用方法以及各个功能模块的具体操作流程。 #### 二、安装YSlow YSlow是作为Firefox浏览器插件Firebug的一个扩展存在的。因此,使用YSlow前需先安装Firebug。以下是安装步骤: 1. **...
3. **优化建议**:YSLOW会提供一系列具体的优化建议,如合并CSS和JavaScript文件、压缩图片、设置缓存策略等,以提高页面加载速度。 4. **报告导出**:可以将分析结果导出为HTML、CSV或XML格式,便于团队协作和跟踪...
的“YSlow”规则,这套规则是基于23条最佳实践,旨在优化网页的加载速度。yslow会根据这些规则对网页进行评分,并提供改进的建议,包括减少HTTP请求、合并CSS和JavaScript文件、启用压缩、缓存利用等。 yslow-3.1.0...
**正文** 《YSlow 2.0.0b6:Firefox浏览器优化利器》 YSlow是Yahoo!开发的一款网页性能优化工具,它...无论你是网页设计师还是开发者,都应该掌握YSlow这样的工具,以便在日常工作中持续优化网页性能,提升网站质量。
这对于提升网页加载速度、优化用户体验至关重要,因为网页的加载速度直接影响到用户的满意度和搜索引擎的排名。在现代互联网环境中,快速响应的网页对于网站的成功至关重要,YSlow正是这样一款帮助开发者实现这一...
总结来说,yslow3_1_2是一个强大的Web前端性能分析工具,它基于YSlow规则,提供了一整套评估和改进网页加载速度的方法,对于任何关注网站性能的开发者或测试人员来说,都是一个不可或缺的助手。通过使用这个工具,...
YSlow是一款由雅虎美国开发的页面评分工具,它被广泛应用于对网页性能的分析与优化。YSlow能够对网页进行评分,并给出具体的改进建议。通过使用YSlow,开发者可以找出网页性能瓶颈,并掌握如何改进和优化网页以达到...
Firebug和YSlow是Web开发和优化领域中的两个重要工具,它们在前端性能分析和调试方面发挥着关键作用。火狐浏览器的扩展Firebug是一款强大的HTML、CSS、JavaScript调试工具,而YSlow则是Yahoo!开发的一款性能分析插件...
本文旨在探讨通过Web设计优化来提升网站访问速度的方法,具体包括利用Firefox/Firebug插件YSlow进行评估与优化、服务器配置优化以及其他相关策略。 #### 1. Firefox/Firebug插件YSlow简介 YSlow是由Yahoo开发的一...
YSlow是Yahoo发布的一款基于FireFox的插件,这个插件可以分析网站的页面,并告诉你为了提高网站性能,如何基于某些规则而进行优化。yslow3.18支持firefox30版本
网站性能工具Yslow
yslow for firefox v18
FireBug和YSlow是Web开发和优化领域中的两个重要工具,尤其对于前端开发者而言,它们是不可或缺的利器。本文将详细介绍这两个工具的功能、用途以及如何使用它们来提升网页性能。 **FireBug** FireBug是一款集成在...
根据YSlow的报告,开发者可以有针对性地优化HTML、CSS和JavaScript代码,减少不必要的HTTP请求,优化图片压缩,提高页面加载速度。 总的来说,"firefox-firebug-yslow.zip"提供的工具集是前端开发者不可或缺的利器...
YSlow可以对网站的页面进行分析,并告诉你为了提高网站性能,如何基于某些规则而进行优化。 YSlow可以分析任何网站,并为每一个规则产生一个整体报告,如果页面可以进行优化,则YSlow会列出具体的修改意见
网站优化10条 ...网站优化是一个很重要的课题,对网站的加载速度和用户体验有很大的影响。通过学习和应用这些最佳实践和工具,可以帮助网站开发人员更好地理解网站优化的原则,并且更好地使用他们。