网站提高速度的13个简易规则

本文为译文,原文地址:http://www.codinghorror.com/blog/2007/08/yslow-yahoos-problems-are-not-your-problems.html

YSlow: Yahoo's Problems Are Not Your Problems

I first saw Yahoo's 13 Simple Rules for Speeding Up Your Web Site referenced in a post on Rich Skrenta's blog in May. It looks like there were originally 14 rules; one must have fallen off the list somewhere along the way.

我第一次看到雅虎的13个简单的规则,加快您的网站在引用Skrenta丰富的博客后,在 5月。它看起来像本来有14规则,必须有脱落沿途的清单 某处。

  1. 少的HTTP请求
  2. 使用内容传送网络
  3. 添加一个Expires头
  4. Gzip已组件
  5. 把在顶部的CSS
  6. 将脚本的底部
  7. 避免CSS表达式
  8. 使JavaScript和CSS外部
  9. 减少DNS查找
  10. 缩小的JavaScript
  11. 避免重定向
  12. 删除重复的脚本
  13. 配置ETag的

它的坚实的意见,从优秀扑杀雅虎的用户界面博客,即将打包成 一个类似的优秀图书。它也 可作为一个PowerPoint演示文稿在Web 2.0大会上发表。

我在我的职务也包括类似的地面 ,减少您的网站的带宽使用情况。

但在此之前运行和实施所有雅虎坚实的意见,考虑到观众。这些规则是从雅虎,根据Alexa是一个在世界前三名的网页内容。里奇的公司,东证,没有懒散-他们在顶部2000。这是很自然,富深知雅虎意见,就如何将兴趣规模的网站,每天数以百万计的唯一用户。

为了帮助他人实施的规则,雅虎创建一个Firebug的插件,YSlow的。这个插件评估当前页,使用的13条规则,并提供具体的指导,就如何修复它发现的任何问题。和所有最重要的是,该工具一个得分率与页面 - !得分有没有我们的爱超过熬煮的网页和网页复杂的意见,以一个简单的数字得分。这里是我成绩单昨日后的得分。

网站提高速度的13个简易规则

要理解的得分,你必须解剖个别规则的比重,像西蒙Chiaretta那样 :

重量11 3,添加Expires头
4。GZIP组件
13。配置ETag的
重量10 2。使用内容传送网络
放置在顶部的
CSS 10 。缩小的
JavaScript 11 。避免重定向
重量5 9。减少DNS查找
6。移动脚本的底部
12。删除重复的脚本
重量4 1。较少的请求(CSS 
)1 。较少的请求( JS)
重量3 1。较少的请求(CSS背景图像 )
重量2 7,避免CSS表达式

我的73 YSlow的评分是可敬的,但我已经做了一些改变,以容纳大量需求。为了得到一些常见的网站得分的想法 ,西蒙娜跑的博客数量的YSlow,并录得的结果:

  • 谷歌:一(99)
  • 雅虎开发者网络博客:(66)
  • Yahoo!用户界面博客:(65)
  • 斯科特Watermasysk:(62)
  • 苹果:(61)
  • 戴维Shea的mezzoblue:(60)
  • 除了一个名单:F(58)
  • 史蒂夫哈曼:F(54)
  • 编码恐怖:传真:(52)
  • Haacked由菲尔:女(36)
  • Scott Hanselman的计算机禅:F(29)

YSlow的是一个方便的工具,但无论是在网上是非常低效的网页,或者有什么东西错误的,其得分。我以后会得到。

在“统计信息”标签包含一个总结以及浏览器缓存和无的足迹,您下载的页面的总规模。从雅虎的主要结果之一是 40%至60%,每日游客有一个空的缓存。因此,有必要优化大小的一切,而不是靠客户端浏览器缓存保存在通常情况下给你。

网站提高速度的13个简易规则

YSlow的也被打破了更加详细的通过组件“选项卡上的统计。在这里你可以看到几个关键的判断标准,为每一个页面上的资源...

  • 这个资源是否有一个明确的到期日?
  • 这个资源压缩吗?
  • 这个资源是否有一个ETag吗?

... ... 随着绝对大小。

网站提高速度的13个简易规则

YSlow会是一个有用的工具,但它可以在不法分子手中的危险。软件开发人员喜爱的优化。有时太多

这里有一些好的建议,但也有很多的意见,才有意义,如果你运行一个网站,获取数以百万计的独特的用户每天。你运行一个这样的网站吗?如果是这样,你在做什么而不是你的私人飞机飞行奖杯妻子到百慕大度假 ?剩下的我们应该多一点有关的意见,我们按照选择性。避免的诱惑,盲目套用这些“顶(X)的方式(Y)”列出了Digg和其他社交网站上如此受欢迎。相反,阅读的建议,批判和思考实施这一建议的后果 。

如果您无法读取雅虎的意见,看房,你可能使您的网站 菲尔哈克不幸发现。虽然许多这些规则是面包和奶油HTTP优化方案,很不幸,一些雅虎的名单上最高的加权规则是非常危险的,如果不是平面的错误较小的网站。而当你定义为“比雅虎小”的“小”,这是.. 好了,几乎每个人都。因此,让我们在雅虎的名单上最棘手的权重意见,关键看 。

使用内容分发网络(重量:10)

如果你要问 一个正式的内容分发网络将耗资多少,你可以买不起。这是更有效地想到这“繁重”在您的网站-例如,你提供任何媒体或图像大块-外包好得多配备处理的外部网站 。这是我提供的意见,最重要的 位,减少您的网站的带宽使用情况。一个CDN,使用下面的一个合理的雅虎式的交通量,甚至 可以减缓你的网站上下 。

配置ETag的(重量:11)

ETag的是一个校验领域的服务与每个服务器上的文件,如果服务器上的资源是客户持有本地缓存版本不同,所以客户端可以告诉。雅虎建议转向ETag的,因为它们会导致服务器上的农场,由于他们与机器特定的标记生成方式的问题。所以,除非你运行一个服务器场,你应该忽略本指导意见。这将不仅使您的网站表现较差,因为客户端将有一个更困难的时候,确定其缓存是陈旧或新鲜。它可以为客户端使用现有的最后修改日期字段,以确定是否是陈旧的缓存,但 最后一次修改是一个薄弱的验证程序, 而实体标记(ETag的)是一个强大的的验证器。为何疲软的贸易实力 ?

添加一个Expires头(重量:11)

这是不坏的意见,本身,而是它可以造成巨大的问题,如果你弄错了。在微软的IIS,例如,将Expires头始终是关闭默认情况下,可能正是由于这个原因, 。HTTP资源设置一个Expires头,你告诉客户端从不检查资源的新版本-至少直到Expires头的到期日。当我说没有,我的意思是-浏览器甚至不会要求一个新的版本,它只是承担其缓存版本好走,直到客户端清除缓存,缓存达到的到期日期 。雅虎指出,他们改变了对这些资源的文件名 ​​,当他们需要 他们刷新。

你真的节能这里是客户端ping了一个新的版本的服务器和一个不能修改的304头,在通常情况下,资源并没有改变的成本。这不是开销很大.. 除非你是雅虎。当然,如果你有一个图像或脚本,几乎永不 改变的,肯定是利用客户端缓存打开Cache - Control头 。缓存到浏览器的性能是至关重要的;每个Web开发人员都应该有一个HTTP的缓存作品的深刻理解 。但只有一个手术,有限的方式使用这些特定的文件夹或文件,可以受益。为别的,风险大于好处。这当然不是你想变成毯默认为您的整个网站上的东西 .. 除非你想改变文件名 ​​,每次改动的内容。

我不意味着采取任何雅虎的出色指导。 雅虎的13个简单为加快您的网站规则和同伴 YSlow的Firebug的插件,是整个互联网的优秀资源 。通过一切手段,读取它。从中受益。实现它。我一直在 敲打GZip压缩的好处多年

但也认识到,雅虎的问题不一定是你的问题。有没有这样的东西作为一个放之四海而皆准的指导。力争首先要了解的意见,然后实施意见,使您的具体情况的意识 。


上一篇:python opencv 基础形状查找 实例


下一篇:基于角色访问控制(RBAC)的自定义权限管理系统