Mic*_*haw 5 html optimization performance preloading
我对该rel="preload"属性感到很兴奋,因为它看起来可以帮助加快页面渲染时间。
该用例是一个首屏上方有大图像的网页。目前,Chrome 在获取 jQuery(一个相当重的文件)之后才会开始下载图像。启用预加载后,它们会并行下载。
但我正在阅读关于是否应该使用preload其他地方可见 HTML 元素中的内容(而不是通过用户交互使可见的内容,如下拉菜单)的相互矛盾的报告。
这篇文章似乎建议不要预加载:
何时不使用预加载:
- 当资产在同一页面上的其他地方被引用时。
- 当您不确定用户是否真的需要该资产时。就像在一个页面上,访问者只有 3% 的时间会去。
虽然这似乎表明它对于英国《金融时报》网站上的类似情况确实很有帮助:
当《金融时报》在其网站上引入链接预加载标头时,他们将显示标头图像所需的时间缩短了 1 秒......
那么是哪一个呢?我应该提供一个早期的“提示”来显示始终显示的首屏图像吗?或者我应该让浏览器按通常的顺序访问它?
我认为,在涉及性能优化的情况下,您确实需要创建 A/B 测试来确定应该执行哪一个测试。对于图像预加载来说,确实没有一个千篇一律的答案可以作为最佳实践适用于每个人。
我最喜欢的一本书《精益企业》的最大原则之一是使用 A/B 测试来证明或反驳 HIPPO(高薪人士的观点)。某些观点在您的组织和互联网上都具有很大的影响力。由于他们的重要性和声誉,他们的观点倾向于事实,尽管事实可能并非如此。
我喜欢的另一本涉及性能调优的书《Code Complete》第二版也提倡以经验方式衡量性能的做法。在那本书中,McConnell 给出了几个代码示例,您可能期望其中一段代码是最佳的,但实际上,它的性能很差(请参阅第 25 章和第 26 章)。他的要点之一是您应该始终测试性能优化。如果不值得测试,那么一开始就不值得编写“高性能”代码。麦康奈尔的前提不仅适用于他的低级编码示例,还适用于高级决策,例如在首屏上预加载图像。
我还可以证明专业级别的 A/B 测试的重要性。我曾经在亚马逊的 SEO 团队工作,我们对所有内容进行了 A/B 测试。事实是,你永远不知道客户会对某件事有何反应。没有人可以预测客户的行为 - 甚至杰夫·贝佐斯也无法预测 - 您确实需要用真实数据来支持您的假设,以证明或反驳您正在做的事情的有效性。
尽管您可以找到多篇博客文章和在线资源讨论预加载是否更好,但在您完成之前,您并不真正知道这是否适合您。不同的人拥有不同的服务器,具有不同的性能特征和不同的网络拓扑等。在获得数据之前,您只是不知道哪种方式更适合您。如果您启动 A/B 测试并发现预加载时击退率上升,那么您就知道必须回撤治疗并恢复控制。然而,如果您发现客户不会厌倦等待,并且点击率比以前更高,那么您就获胜了,您可以采取治疗措施 - 一段时间后完全删除控制代码。
我希望这有帮助。