Google 的 YSlow——Page Speed

Yahoo的YSlow大家应该都比较熟悉了,那是找出我们网页为什么缓慢的利器。其实Google也有类 似的FireFox插件,名字叫做“Page Speed”,虽然名字比YSlow逊色很多,但是功能却完全不在YSlow之下。不同于YSlow的14条衡量标准,“Page Speed”的网页速度衡量标准又是什么呢?

和YSlow一样,“Page Speed”也是一个基于firebug附加组件的FireFox插件。虽然听起来有点拗口,但是意思很容易理解:如果你想用“Page Speed”,那么你就要安装firbug,而firebug是FireFox的一个附加组件,所以你也必须按照FireFox浏览器。同时另外一个意思 是:IE!NO!Sorry! “Page Speed”有两个面板,分别是“Page Speed”面板和“Page Speed Activity”面板。

“Page Speed”面板如下:

Google 的 YSlow——Page Speed_第1张图片

和YSlow使用Yahoo的14条标准来衡量网页的综合速度一样,Page Speed通过Google指定的20条标准来衡量网页的综合速度。而Page Speed面板就是用来展现你的网页在Google20条标准上的得分。“Page Speed”通过分析你的网页加载、呈现速度,用20条标准来衡量,最终告知你的网页速度如何、哪种标准得分多少、问题所在、如何改进等信息。

“Page Speed Activity”面板如下:

Google 的 YSlow——Page Speed_第2张图片

“Page Speed Activity”面板用于展现你的网页加载各种元素的所用时间,这样,你就可以更明确的知道到底是谁在浪费、占用大量的时间,从而更有针对性的进行改进。不同的阶段占用的时间,用不同的色块进行表示,恩,真是贴心的设计。

“Page Speed”的20条衡量标准

如果你对YSlow比较熟悉的话,那么一定会知道YSlow用于衡量网页速度的14条标准,而“Page Speed”有20条衡量标准,那么他们之间的到底有什么不同呢?Google又会给我们带来什么新的观点呢?

如果你想非常详细的了解YSlow的14条衡量标准的超详细讲解,那么你可以购买一本书,书的名字叫做:《高性能网站建设指南》,书的封面是一条经常出现在《人与兽》一类电影中的那种狗狗。

“Page Speed”的20条衡量标准到底是什么呢?

  1. Put CSS in the document head
  2. 将你的CSS样式表文件放在整个页面的头部。没有什么难理解的。css先下载下来,就能更快的渲染网页效果。从而让人们感觉网页速度很快。 更多关于"Put CSS in the document head"的更多详细解释,请看官方文档。

  3. Use efficient CSS selectors
  4. 使用效率更高的CSS选择符。举个很简单的例子:尽量不要使用*号选择符:

    view source
    print ?
    1 *{ padding : 0 ; margin : 0 }

    像这样的得分会很低,正确的办法应该是只对你想设置的标签元素进行设置,例如:

    view source
    print ?
    01 html, body, div, span, applet, object, iframe,
    02 h 1 , h 2 , h 3 , h 4 , h 5 , h 6 , p, blockquote, pre ,
    03 a, abbr, acronym, address, big, cite, code ,
    04 del, dfn, em, font, img, ins, kbd, q, s, samp,
    05 small , strike, strong, sub , sup, tt, var,
    06 b, u, i, center ,
    07 dl, dt, dd, ol, ul, li,
    08 fieldset, form, label, legend,
    09 table, caption , tbody, tfoot, thead, tr, th, td {
    10      margin : 0 ;
    11      padding : 0 ;
    12 }
  5. Leverage proxy caching
  6. 代理缓存。这个名词听起来好像很屌的样子,以至于我也是查了资料才知道:所谓proxy cacheing,就是一种公共缓存,用于静态资源,允许浏览器从最近的代理服务器上,而不是从远程的原始服务器,下载这些静态资源。这些代理服务器,通 常而言就是有ISP,接入服务商所提供的。

    这样的代理服务器缓存可以让通过同一ISP接入服务的用户共享这些静态资源,而节省原始服务器的带宽,以及下载速度也会大大提高,特别是对于局域网的用户有特别的好处。

  7. Minify JavaScript
  8. 最小化JavaScript脚本。这个貌似没有什么好说的,压缩一下你的JavaScript脚本吧。

  9. Optimize images
  10. 优化图片,其实最经常使用的就是css script了,也有翻译为“css精灵”的,虽然翻译的很美好,但是其实很简单,就是将多个图形,放在张图片文件中。这样,可以有效的减少http请求的数量。

  11. Minimize cookie size
  12. 最小化你的cookie。cookie的确是个好东西,他可以让你在用户的客户端保存一些东西,但 是,千万不要什么都往用户口袋里面塞。原因很简单,cookie大小有限,有最大限制,而且cookie过大会减慢网页呈现的速度。另外为了安全性考虑, 也不要把所有的什么破铜烂铁都塞到cookie里面。

  13. Enable gzip compression
  14. 使用gzip压缩。详细这个大家应该已经比较熟悉了。说白了就是服务器向浏览器发的是经过压缩的页面,这样传输的字节就会大大减少,速度自然也就快了。

    Google 的 YSlow——Page Speed_第3张图片

  15. Combine external JavaScript
  16. 合并外部的JavaScript文件。道理很简单,依然是为了少读取.js文件,从而有效的减少http请求数量。合并外部的JavaScript文件可以有效的减少http请求数量。

    Google 的 YSlow——Page Speed_第4张图片

  17. Minimize DNS lookups
  18. 最小化DNS查询。

  19. Optimize the order of styles and scripts
  20. 优化样式表和脚本的顺序。如果你要是看过老赵的《挣脱浏览器的束缚》系列的话(本系列也已经收录到 《博客园精华集-web标准之道》一书中)。就知道IE浏览器对同一个域名下的文件,同时只能下载2个文件。所以,到底先让哪些样式表先下载下来,让哪些 脚本先下载下来,这个顺序就非常重要了。所以,如果有可能,请重视一下样式表和脚本的顺序吧。推荐的做法是:将css放在js文件上面,让css文件先被 加载,这样就可以先让网页渲染出来,从而加快浏览者的感知速度。

    Google 的 YSlow——Page Speed_第5张图片

    IE浏览器对同一个域名下的文件,同时只能下载2个文件

  21. Serve resources from a consistent URL
  22. 相同的资源,使用相同的url地址。道理很好理解,如果是相同的一张图片,就不要东方一下,西方一下,然后引用的时候使用不同的url地址。为什么要这样做,道理也很简单,因为——缓存!

  23. Avoid CSS expressions
  24. 避免CSS表达式。IE8已经不再支持css表达式功能。

  25. Parallelize downloads across hostnames
  26. 通过不同的主机同时下载网页资源。这个的道理已经在“Optimize the order of styles and scripts”这一准则中讲述过。道理依然是老赵的《挣脱浏览器的束缚》提到的原因:IE浏览器对同一个域名下的文件,同时只能下载2个文件。

  27. Combine external CSS
  28. 合并外部的css文件。这条和“Combine external JavaScript”准则的道理一样。还是为了减少http请求数量。

  29. Specify image dimensions
  30. 明确的指明图片的高度和宽度。很久很久以前,long long ago。一个同学问我:“明确的指明图片的宽度和高度,是否能加快页面的渲染速度?”当时我的答案是:“这个应该没有关系吧!”。看来,当时的我是误人子 弟了。明确的指出图片的高度和宽度,能够有效的加快浏览器在渲染图片周围布局和绘制呈现时的速度。

  31. Minimize redirects
  32. 尽量避免重定向。道理很简单,你从A地点到你的同事B先生家,到了那里,他的邻居告诉你,B先生已 经搬家了,搬到了C地点,于是,你又跑到C地点,然后C地点有个人告诉你,B先生现在又搬家了,已经搬到了D地点。于是你又跑到了D地点,才找到了这个B 同事。而这个装B的B同事,告诉你,你如果直接就来D地点,就不用那么麻烦了,而且速度也会更快一些。网页的跳转和重定向的道理是一样的。

  33. Defer loading of JavaScript
  34. 延期加载JavaScript。这个听起来真是个高科技的东西呀。其实这玩意还真是非常的有效呀。不仅可以延期加载脚本,像一些大的图片、flash也都可以延期加载。其实实现原来也不是很难,就是先不加载一些比较大的东西,当页面加载完毕后,再加载那些东西。

你可能感兴趣的:(JavaScript,css,浏览器,Google,styles,Firefox插件)