个人健康与网站健康之间的平行

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 $200 的免费积分!

我最近在南卡罗来纳州的 希尔顿黑德健康 (一家减肥水疗中心) 度过了一周。 这次体验的一部分是课堂学习,内容涵盖许多不同的健康相关主题。 在听到所有这些内容的同时,我不禁想到了个人健康和网站健康之间的平行关系,尤其是关于网站性能。 也许看看这些相似之处是有用的,因为在照顾两者方面都有巨大的价值,有时一个好的比喻可以触发理解和行动。

不错的关节。

减肥既简单又困难

减肥的唯一方法是燃烧的卡路里多于摄入的卡路里。 这个概念非常简单。 然而,正如我们大多数人所知,这极其困难。 也有一个让网站快速加载的真正方法,那就是不要在网站上添加太多内容以至于使其变慢。 这是一个非常简单的概念,但实际上并不容易。

在一天中,我们接触到的不健康饮食选择远远多于健康饮食选择。 不健康的选择通常更容易、更快、更便宜。

您也可能在围绕网站的组织中遇到这样的挑战。 会议中每个人都对首页需要添加什么有自己的意见。 业务需求决定了需要将什么放在哪里。 分析告诉您,戴着耳机的女人的巨型图片比单独的文本转换率更高。 虽然您可能会赢得一些战斗,但在“在网站上做更少”方面,在战争中很容易失去阵地。

在减肥时,您可能会进行节食。 实际上,这是一个关于您可以吃什么以及吃多少的计划。 这会引导您的选择。 网站等效项可能是 性能预算。 也许像这样简单的事情:在任何给定的页面上,您对 X 个总大小的请求有 X 个。 让这个概念在关于网站上什么东西放在哪里会议上有力量。

锻炼也有助于减肥,对吧? 是的,有一点。 但它远没有你吃什么那么重要。 正如我们被告知的那样:“你不能与你吃的东西竞争。” 与此相关的锻炼的平行关系可能是服务器升级之类的事情。

锻炼有帮助,但没有饮食那么重要。 更好的服务器可以提供帮助,但它没有适当的前端性能工作那么重要。

我们需要我们的网站更快,所以我们不能只升级我们的服务器吗? 我们的数据库人员不能只升级某些东西吗? 这些事情可能有一点帮助,但你“无法与”你提供的东西“竞争”。 80% 的网站性能与前端相关,这与用户的计算机和互联网连接关系更大,而不是与您的服务器有关。

无意识地吃 / 无意识地创建

让健康饮食变得困难的部分原因是,我们大多数人没有花太多心思去想它。 我们只是做它。 我们没有多少计划,甚至在吃饭的时候也没有想过它。 更不用说我们受到环境的强烈影响了。 这本书是关于这个主题的推荐读物。

我怀疑大多数从事网站工作的人也没有过多关注性能。 他们知道他们不应该使用 2MB 的 JPG,但除此之外,并没有真正想过它。 这有一定道理。 许多网络工作者只有初级技能。 你不能用太多信息压倒一个初学者,让他们知道 HTML 和 CSS 的工作原理比知道 HTTP 请求的工作原理更重要。 也许初学者制作的网站是实时网站是不幸的,但我并不这么认为。 这就是网络的魅力所在。

无意识的创建是与无意识地吃平行的。 没有想过我们在建什么,我们只是做它。 我们只是完成工作。 用户没有向支持部门写信说网站很慢,因此没有任何票要处理,所以也没有任何事情需要解决。 但当然,需要做一些事情。 性能只是那些你必须做的事情之一,因为这对所有事情都有好处:参与度、转化率、一般的社区积善行德…

也许您不希望性能细节拖累高效的工作流程,或者让过度劳累的员工背负新的担忧。 这可以理解,但需要对性能进行一些检查和平衡。 某种让组织能够关注性能的方式。

数量与频率

HHH 的鲍勃·赖特讲了一个关于热狗的故事。 他喜欢棒球,每年至少会去看几场比赛。 棒球比赛和热狗密不可分。 热狗不健康,这已经不是什么秘密了,但鲍勃,通常是一个健康的人,每次在比赛中都会吃一个。 对于鲍勃来说,这是一个非常糟糕的选择吗? 不。 一两个热狗在一个健康的生活中不会有什么不同。 问题不在于热狗,而在于热狗的数量和频率。 如果你每天吃三根热狗,那才是会要你命的。


一根辣椒热狗不会要你命。 每天三根辣椒热狗可能会。 一个很大的 JPG 不会破坏您的网站性能,但九个可能会。

就像不是热狗一样,也不是网站上的任何一个资源都会影响性能。 不是 jQuery,而是通过 18 个文件加载 400k 的 JavaScript。 不是 200k 的 JPG,而是带有 25 个 200k JPG 的滑块。

细枝末节

你不是在特氟龙锅里做双层芝士汉堡吧?!! 特氟龙对你的健康非常有害!!

这是只见树木不见森林的情况。 有 一些证据 表明特氟龙可能很糟糕,但它并没有特别有说服力,很难做到(需要达到 650°F),而且可能不是什么大不了的事情。 然而,双层芝士汉堡肯定对你的健康有害。

杀死你的不是锅。

这就像在没有优化图像或将可以一起合并的图像一起合并的情况下,争论加载 JavaScript 库。

这就像在没有将 JavaScript 作为压缩文件提供的情况下,争论=====快,或者++ii++快。

虽然你可能是正确的,说这个小的改变会更快,但花时间研究、讨论和进行这些改变,不如花时间进行 更容易的改变,这些改变可以使性能提高几个数量级。

有时这些小的性能调整被称为微优化,我认为这是一个很好的名字。 最适合库、框架的创建者以及从事计算密集型网站的人。

食品包装和广告中存在大量胡说八道。 你知道翠西现在很健康吗?


全谷物?! 再给我一碗!

幸运的是,与之相比,网络行业相当诚实。 我没有看到网络托管公司经常宣传他们比彼此快多少,因为这是一个他们几乎无法保证的声明,因为它过于依赖您使用该托管的方式。

越来越大

也许您已经看到了这张地图,它绘制了 1985 年至 2008 年(仅 23 年)美国人口中肥胖人口的百分比。

它从美国大多数州的肥胖人口不到 10% 变成了大多数州的肥胖人口超过 25%,有些州超过 30%。 成长相当惊人! 它还在继续,四年后的 2012 年,全国 他们说 超过 1/3(35.7%)的美国成年人是肥胖的。 据 预计 到 2030 年,这一数字将达到 44%。

以下是一些更令人震惊的数字

  • 肥胖成年人的年度医疗费用高出 1,429 美元。
  • 超过三分之二(68.8%)的成年人被认为超重或肥胖。
  • 77% 的成年人每天摄入的水果和蔬菜不到 5 份。
  • 在全球范围内,超重成年人超过 10 亿。

我敢打赌你已经知道我要说什么了。

网站也变得越来越大。这可能并不令人惊讶,但你可能会惊讶于增长速度远高于这些与重量相关的数字。Tammy Everts 在 这里 详细介绍了这一趋势。

来自 HTTP Archive 的数据显示,从 2010 年 11 月到 2013 年 5 月,网站的平均总大小几乎翻了一番。并且在这段时间内,增长速度翻了一番多。如果这种趋势持续下去,目前平均网站大小为 1.34MB,一年后将增加到 2.68MB。

公平地说,尽管有这种增长,有证据表明 网页加载时间实际上已经有所改善。这是来自 Google 的数据,Google 收集了这些数据,并提供了 非常快非常慢 的互联网选项,所以你可以随意选择。另外要注意,这里的指标是“页面加载时间”,其中浏览器本身的优化起着重要作用。但这也有一个硬性限制,因为浏览器最终需要资源才能完成任何操作。

互联网速度显然是这里的一个主要因素。如果互联网速度随着网站体积的增长而翻倍,我们可能没问题,但轻度研究表明,互联网速度的年增长率 接近 50%

这仅仅是平均值。决策不能完全基于平均值。对于许多使用慢速互联网或按千字节付费的用户来说,2.68MB 的网站是不可接受的。更快的网站加载速度将永远很重要,更小的总大小将始终有助于实现这一目标。

有些事情就是不好,就这么简单。

一个小的公共卫生胜利是反式脂肪。每个人都知道它们是什么,每个人都知道它们不好。即使是基本上生产垃圾食品的公司也已采取措施将其从生产的食物中去除。反式脂肪就是不好,就这么简单。你应该吃零反式脂肪。

有一些与性能相关的方面也是不好的,就这么简单。不压缩 HTML 和文本资源就是不好。不优化图像就是不好。在可以的情况下不合并资源就是不好。不利用简单的缓存解决方案,无论是前端还是后端,都是不好的。

不明智 || 更好 || 最佳

即使是训练有素的营养师也很难判断餐厅食物的营养价值。仅仅通过查看菜单(甚至已准备好的菜肴)来了解情况太难了。我们这些普通人如何在餐厅做出明智的决定?你可能无法猜测特定菜肴的卡路里、饱和脂肪和钠含量,但你可能能够正确地猜测哪一道菜更健康。烤鸡肉沙拉比牛排三明治更健康吗?是的。

在这种情况下,牛排三明治是一个不明智的选择。如果你在菜单上看到烤鸡肉三明治,那可能是一个更好的选择。烤鸡肉沙拉可能是最佳选择。这很明显,但用这种方式思考可以帮助你做出决定。

在进行日常的网络任务时,我们可能能够应用相同的思维方式。假设你需要在网站上的页面中添加一个新的插图。它以 2MB JPG 的格式提供给你。直接将其放在页面上将是不明智的。你可以将其缩小吗?你可以优化它吗?这些都是明智的选择。它看起来像 SVG 吗?它是纯色吗?它可以集成到您正在使用的 @font-face 字体中吗?你可以使用响应式图片解决方案吗?如果可能的话,这些将是最佳解决方案。

你不总是需要做出最佳决定。我们都知道过完美的生活太难了。但是,如果你能够通过简单的比较,并朝着明智的方向发展,做出更好的决定,你将过得更好。

还有更多联系吗?

我敢肯定你们可以提出更多有趣的人身健康-网站健康的联系。什么代表坏胆固醇和好胆固醇?有与时尚饮食等效的东西吗?

另外,仅仅为了好玩,我最近重新创建了 HTML 和 CSS 中的营养成分标签。然后我将其分叉并制作了一个调侃的性能数据版本。

查看 Chris Coyier (@chriscoyier) 在 CodePen 上的 性能数据

当然,这仅仅是为了好玩,但这也许可以让你开始思考网站的性能并开始制定性能预算。