【问题标题】:Self-Hosting the AMP framework - Performance aspect自托管 AMP 框架 - 性能方面
【发布时间】:2020-07-26 23:23:17
【问题描述】:

Matt Mower 发布了 gist 解释如何自托管 AMP 框架。

他认为的好处之一是:

从同一主机提供 AMP 页面和框架,从而可能缩短内容交付时间。

在阅读本文之前,我认为性能没有差异,因为 HTML 从我的服务器提供一次,然后异步调用从官方 CDN 传输 AMP 框架文件。如果自托管,AMP 框架文件仍将以几乎相同的方式提供,但来自我的服务器。那么自托管 AMP 框架如何表现更好呢?

【问题讨论】:

  • 主题是“图书馆的主机”,而不是“内容的主机”。您的“托管”网站将指向托管 javascript 而不是 amp-javascript。您需要检查带有托管库的内容是否在 amp-cache 中(如果不检查,我不记得了)

标签: performance cdn amp-html


【解决方案1】:

请记住,虽然 AMP 库是异步加载的,但 AMP 运行时 (v0.js) 仍会阻止您的页面呈现(这是故意使用 AMP CSS boilerplate 完成的,它会隐藏页面内容,直到运行时加载)。

假设您的服务器支持 HTTP/2,在您的网站旁边托管运行时允许您利用 request multiplexing 并避免连接到通常会增加 DNS 查找和连接开销的不同服务器(AMP CDN)。

但是,自托管框架也有缺点:

  • 您的网页成为无效的 AMP(这将在未来发生变化)。

  • AMP 的 CDN 分布在全球,并且性能非常好 - 如果您自己不使用类似质量的 CDN,CDN 性能可能会超过将运行时托管在与您的网站相同的服务器上所带来的优势。

  • 如果您之前访问过另一个 AMP 网站,浏览器可能已经缓存了从 AMP CDN 提供的 AMP 运行时(这不适用于带有 double-keyed cache 的浏览器,例如 Chrome)。


底线是,如果您的目标是在 AMP 网页上获得更高的性能,最好从 How to make AMP even fasterimplement server-side rendering 中概述的技巧开始。自托管框架可能产生额外的性能优势,但对于大多数网站来说,这可能可以忽略不计。

【讨论】:

  • 两个补充:1. AMP 验证器将来会支持自托管 AMP 运行时。 2. 现在的浏览器只缓存每个源的脚本,因此跨源缓存不再是从 cdn.ampproject.org 加载 AMP 运行时的好处。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多