- 尽量减少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架设的博客系统来详细介绍如何提高网站的性能以增加用户体验。