你的网站为什么会慢?——用YSlow为你的网站提速
在前面的文章我翻译的文章中分别从内容、服务器、JavaScript和CSS、图片、Coockies和移动应用等几个方面总结了34条提高网站性能的黄金守则,但是这些守则中,有一些是不常用到的,若非有实力的大型企业很难实现。对于小型网站,比如个人博客等在提高网站性能上可以首先考虑以下13条准则:
- 尽量减少HTTP请求
- 使用内容分发网络(CDN)
- 为文件头指定Expires或Cache-Control
- Gzip压缩文件内容
- 把样式表置于顶部
- 把脚本置于页面底部
- 避免使用CSS表达式(Expression)
- 使用外部JavaScript和CSS
- 减少DNS查找
- 削减JavaScript和CSS
- 避免跳转
- 剔除重复脚本
- 配置ETag
但是往往,一个网站不可能同时存在这些问题,最好能有一个工具可以为我们论断自己的网站存在的问题。幸运的是,Yahoo为我们提供了一款这样的工具——YSlow,你可以下这个网址去下载到最新版本。下面我们介绍一下他的安装和使用:
1、安装:
YSlow是Firefox的一个插件,目前还没有开发出IE版本,因此你必须装有Firefox 2.x版本。同时,YSlow是依附在Firebug上的,也就是说你的Firefo必须装有Firebug插件。如果你没有安装Firefox可以到Firefox官方网站上(注:目前还不支持 3.x)下载一个,同时可以到这里下载Firebug。
2、启用:
安装完成后,运行Firefox,会在右下角出现图标
,点击即启动。下面我们看看如何使用YSlow以及如何使用分析数据等。
2.1 在Firefox中载入你要分析的网站(如个人博客等,本文又作者的PJBlog程序为例),点击右下角的YSlow图标,启动YSlow,点击Firebug中“Inspect”旁边的“Performence”按钮,即进行分析。我们会看到如下界面:

在这个面板的最上侧 Performance Grade:F(48)为YSlow对你的网站的综合评分,共分为6个等级(A-F)100分制,其中F等级最低,也就是说网站性能最差,不利于用户体验,A级最高,即网站性能最能最优。下面的列表中共列出了13个选项,这13个选项就是为你网站进行打分的参考标准。在每一个选项的前面会有A~F的评分,同样F为最差A为最好。点击右侧的“三角图标”或者右上角的“Expend All”可以展开具体内容。其中标记F的需要改进的项。具体改进方法可以点击文章一开始的13条建议进行查看。
2.2 点击“Stats”按钮查看网站状态:
缓存包括对JavaScript、CSS、图片、静态文件等,此外还有整个网站访问过程中进行HTTP请求的次数、Coockie文件的大小等。图片大体如下:

在上面的截图中,“Empty Cache”和“Primed Cache”分别代表浏览器缓存为空和存在一定缓存时的页面访问情况。在上面的图中我们可以看出,如果我们的页面使用了缓存,那么在以后的访问中性能会有面试的提升,两图相比,有缓存的访问只会下载HTML文件、IFrame框架以及IFram中使用的Js文件(这就是我们在前面的文章讲到的“要使框架数量最少”
,因为它不能缓存。1175K大小的页面增加缓存后只需要下载81K的文件,同时原来需要发送72次HTTP请求,现在只需要发送4次HTTP请求,要知道HTTP请求是页面性能中最昂贵的代价,因此,越少越好。
在下面的饼状图中展示了各内容在访问中所占的比重。可以看出,在存在缓存的情况下,Flash、JavaScript、CSS、Images等都已经不需要再加载了,除非你按下了“刷新”按钮。
再接下来是Coockie的大小,一般说来Coockie要越小越好。
2.3 Components,查看页面内容
在这个选项卡中可以看到页面的各个组成部分,如所使用的图片、flash动画、JavaScript文件、CSS样式表等等。

其中Type为文件类型,如JS、iframe、cssimage(CSS中的图像文件)、Image(页面中直接引用的文件)等;URL即文件的来源路径、Expire来件过期时间或者在浏览器中缓存时间、Gzip文件是否使用Gzip压缩、RespTime请求时所需要的时间、Size文件大小(解压后)、ETag唯一标志。
2.4 此外,YSlow还为我们提供了一些有用的小工具,点击右侧的“Tools”按钮
如JSLint,一款Minify Javascript的工具,可以简化你的JavaScript文件的大小,如文件中的注释、换行、空格等都会被去除以使文件最小。All JS和All CSS可以帮助你方便地查看文件中的JavaScript文件和CSS文件,Printable View是类似于Word中的打印预览工具
3、使用YSlow来提速
如果你的页面总分低于60或者处于E、F的水平,那么你就有必要对页面进行改进了,不要以为这项工作可以可无,在越来越讲求用户体验的Web2.0时代,如果你能为用户节省1ms的时间或者节省一个HTTP请求都会给你带来潜在用户。
对于小型网站来说如果提供自身性能增加用户体验呢?对于Web Host的主机租用者来说,他们不能直接接触到服务器该做些什么呢?在下面一节的文章,我将以PJBlog架设的博客系统来详细介绍如何提高网站的性能以增加用户体验。
你的网站为什么会慢?——用YSlow为你的网站提速的更多相关文章
- 关于大型网站技术演进的思考(十九)--网站静态化处理—web前端优化—上(11)
网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...
- 网站实战 从效果图开始CSS+DIV 布局华为网站
经过我们的前面css的学习,我们已经分模块的掌握的CSS的技术,但是,要是完整的做一个页面,我们还没有接触过,这次呢,小强老师来和大家完整的利用CSS+DIV做一个网站案例,我们来模仿下华为的网站. ...
- 【转】关于大型网站技术演进的思考(十九)--网站静态化处理—web前端优化—上(11)
网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...
- 关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)
本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别 ...
- 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)
Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳 ...
- [No00006B]方便的网络下载工具wget 可下载网站目录下的所有文件(可下载整个网站)
wget是linux下命令行的下载工具,功能很强大,它能完成某些下载软件所不能做的,比如如果你想下载一个网页目录下的所有文件,如何做呢?网络用户有时候会遇到需要下载一批文件的情况,有时甚至需要把整个网 ...
- 【PC网站前端架构探讨系列】关于中小型PC网站前端架构方案的讨论与实践
目 录 1.遇到的问题 2.目标 3.探讨 4.架构设想 5.流程 6.初步实现 7.存在问题 8.最后 遇到的问题 我在这个系列上篇文章 已经讲解并开始逐步应用模块化思想,不知大家还记不记得,题 ...
- 网站优化记录-通过命令预编译Asp.net 网站,成功优化到毫秒级别。
在去年一次项目上线时发现部署的站点首次访问跟回收后响应特别慢.(使用的是vs工具预编译的方式发布),在随后找到解决办法是通过命令预编译Asp.net 网站,成功解决站点响应在毫秒级别. 预编译 ASP ...
- 为什么各大网站都纷纷用起了https?哪些网站需要https(SSL证书)
其实最近我也在易维信网站的开发组内讨论应用全站https事宜. 其原因非常简单. 因为不断接到用户投诉说网站上出现影响浏览体验的大面积广告. 可是网站平常只针对未登录用户在顶栏和底栏打两小条广告.而且 ...
随机推荐
- tyvj P1716 - 上帝造题的七分钟 二维树状数组区间查询及修改 二维线段树
P1716 - 上帝造题的七分钟 From Riatre Normal (OI)总时限:50s 内存限制:128MB 代码长度限制:64KB 背景 Background 裸体就意味着 ...
- Codeforces 161D
树形DP: 要求找出树上距离为k的点的对数: 对于每个节点,经过这个节点的符合条件的的点有两种: 第一种:距离他为i的儿子和他爸爸中距离他爸爸为k-i-1:(不是符合的点对中的一个) 第二种:他儿子中 ...
- 你真的有必要退出吗——再说Android程序的退出功能
转自你真的有必要退出吗--再说Android程序的退出功能 搞Android开发有一段时间了,相信很多从Windows开发过来的Android程序员都习惯性地会跟我一样遇到过同一个问题:如何彻底退出程 ...
- 【HDU3247】 Resource Archiver(DP+AC自动机+最短路)
Resource Archiver Time Limit: 10000MS Memory Limit: 100000KB 64bit IO Format: %I64d & %I64u ...
- Delphi常用排序
1.冒泡排序 Delphi/Pascal code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 procedure BubbleSort(var x:a ...
- 关于IOS开发者账号一点总结
经过查阅相关资料,我扼要总结了以下几点内容. 一.开发者账号类型 个人账号 99美金/年 公司账号 99 企业账号 299 教育账号 0 二.开发者账号有无比较 如果有: 可以真机测试 发布的应用可以 ...
- 悟透Javascript undefined,null,"",0这四个值转换为逻辑值时就是false &this关键字
话题一:undefined,null,"",0这四个值转换为逻辑值时就是false 也就是在if判断时会把上面的五个作为false来判断.但是它们的类型确是不尽相同的,如下所示. ...
- CImg 读取jpg, png ,tif 等格式失败解决方案
CImg homepage :http://cimg.sourceforge.net CImg 给出的一个简单的示例:http://cimg.sourceforge.net/reference/gro ...
- HDOJ/HDU 2555 人人都能参加第30届校田径运动会了(判断加排序~)
Problem Description 杭州师范大学第29届田径运动会圆满的闭幕了,本届运动会是我校规模最大,参赛人数最多的一次运动会.在两天半时间里,由学生.教工组成的61支代表队共2664名运动员 ...
- 在Ant Build文件中使用正则表达式替换文件内容
这需要在build文件中使用<replaceregexp>标签, 这个标签的使用大概是这个样子的: <replaceregexp file="${src}/build.pr ...