在前面的文章我翻译的文章中分别从内容服务器JavaScript和CSS图片、Coockies和移动应用等几个方面总结了34条提高网站性能的黄金守则,但是这些守则中,有一些是不常用到的,若非有实力的大型企业很难实现。对于小型网站,比如个人博客等在提高网站性能上可以首先考虑以下13条准则:

  1. 尽量减少HTTP请求
  2. 使用内容分发网络(CDN)
  3. 为文件头指定Expires或Cache-Control
  4. Gzip压缩文件内容
  5. 把样式表置于顶部
  6. 把脚本置于页面底部
  7. 避免使用CSS表达式(Expression)
  8. 使用外部JavaScript和CSS
  9. 减少DNS查找
  10. 削减JavaScript和CSS
  11. 避免跳转
  12. 剔除重复脚本
  13. 配置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为你的网站提速的更多相关文章

  1. 关于大型网站技术演进的思考(十九)--网站静态化处理—web前端优化—上(11)

    网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...

  2. 网站实战 从效果图开始CSS+DIV 布局华为网站

    经过我们的前面css的学习,我们已经分模块的掌握的CSS的技术,但是,要是完整的做一个页面,我们还没有接触过,这次呢,小强老师来和大家完整的利用CSS+DIV做一个网站案例,我们来模仿下华为的网站. ...

  3. 【转】关于大型网站技术演进的思考(十九)--网站静态化处理—web前端优化—上(11)

    网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...

  4. 关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)

    本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别 ...

  5. 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)

    Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳 ...

  6. [No00006B]方便的网络下载工具wget 可下载网站目录下的所有文件(可下载整个网站)

    wget是linux下命令行的下载工具,功能很强大,它能完成某些下载软件所不能做的,比如如果你想下载一个网页目录下的所有文件,如何做呢?网络用户有时候会遇到需要下载一批文件的情况,有时甚至需要把整个网 ...

  7. 【PC网站前端架构探讨系列】关于中小型PC网站前端架构方案的讨论与实践

    目   录 1.遇到的问题 2.目标 3.探讨 4.架构设想 5.流程 6.初步实现 7.存在问题 8.最后 遇到的问题 我在这个系列上篇文章 已经讲解并开始逐步应用模块化思想,不知大家还记不记得,题 ...

  8. 网站优化记录-通过命令预编译Asp.net 网站,成功优化到毫秒级别。

    在去年一次项目上线时发现部署的站点首次访问跟回收后响应特别慢.(使用的是vs工具预编译的方式发布),在随后找到解决办法是通过命令预编译Asp.net 网站,成功解决站点响应在毫秒级别. 预编译 ASP ...

  9. 为什么各大网站都纷纷用起了https?哪些网站需要https(SSL证书)

    其实最近我也在易维信网站的开发组内讨论应用全站https事宜. 其原因非常简单. 因为不断接到用户投诉说网站上出现影响浏览体验的大面积广告. 可是网站平常只针对未登录用户在顶栏和底栏打两小条广告.而且 ...

随机推荐

  1. C语言之 短路原则

    a=0;b=1 c=a&&(b=3) 最终c=0; b=1 因为从左至右进行时,若遇到运算符左边的操作数是 0(逻辑假),则停止运算. a=1;b=1;c=0; d=a||b||(c= ...

  2. [BZOJ - 2631] tree 【LCT】

    题目链接:BZOJ - 2631 题目分析 LCT,像线段树区间乘,区间加那样打标记. 这道题我调了一下午. 提交之后TLE了,我一直以为是写错了导致了死循环. 于是一直在排查错误.直到.. 直到我看 ...

  3. 树莓派学习路程No.1 树莓派系统安装与登录 更换软件源 配置wifi

    在官网下载raspbian系统镜像,用Win32DiskImager写入TF卡 Image File 选择系统镜像,Device 选择TF卡盘符,Write即可.这样系统就写好了.把内存卡插进树莓派里 ...

  4. ExecutorService介绍

    转自: http://victorzhzh.iteye.com/blog/1010359 下面是excutor相关的类结果: ExecutorService接口继承了Executor接口,定义了一些生 ...

  5. Jvm工作原理学习笔记(转)

    一.         JVM的生命周期 1.       JVM实例对应了一个独立运行的java程序它是进程级别 a)     启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有pub ...

  6. HashMap大小选择

    java hashmap,如果确定只装载100个元素,new HashMap(?)多少是最佳的,why? 要回答这个问题,首先得知道影响HashMap性能的参数有哪些.咱们翻翻JDK. 在JDK6中是 ...

  7. Duplex Service in WCF(CodeProject上的)

    Duplex Service in WCF In WCF, a service can call back to its clients. That is to say that, at the ti ...

  8. 5个最佳免费Linux杀毒软件

    5个最佳免费Linux杀毒软件 Linux的防病毒软件,开玩笑吧?Linux不是很安全吗?很多Linux新手都这样认为,看到标题不要犹豫,读完全文你就会从中找到答案. 首先,Linux比其它操作系统更 ...

  9. Performance Optimization (2)

    DesktopGood performance is critical to the success of many games. Below are some simple guidelines f ...

  10. Android学习笔记(四)深入探讨Activity

    在应用程序中至少包含一个用来处理应用程序的主UI功能的主界面屏幕.这个主界面一般由多个Fragment组成,并由一组次要Activity支持.要在屏幕之间切换,就必须要启动一个新的Activity.一 ...