Matt Mower发布了gist,解释了如何自托管AMP框架。
他计算的好处之一是:
从同一主机提供AMP页面和框架,可能会缩短内容交付时间。
[在阅读本文之前,我认为性能没有差异,因为HTML是从我的服务器提供的,因此异步调用会从官方CDN传输AMP框架文件。如果是自托管的,则AMP框架文件仍将以几乎相同的方式进行提供,但是将从我的服务器中提供。那么自托管AMP框架的性能如何更好?
[请记住,虽然AMP库是异步加载的,但是AMP运行时(v0.js
)仍会阻塞页面的显示(这是故意使用AMP CSS boilerplate来完成的,它隐藏页面内容直到运行时加载)。
假设您的服务器支持HTTP / 2,将运行时托管在您的网站旁边可让您利用request multiplexing并避免连接到其他服务器(AMP CDN),这通常会增加DNS查找和连接开销。
但是,自托管框架有一些缺点:
您的页面将成为无效的AMP。
如果用户访问了使用AMP的任何其他网站,则浏览器可能已经缓存了AMP库。如果您是自托管库,则无法使用此缓存。
AMP的CDN是全球分布的,并且性能很高-如果您自己不使用类似质量的CDN,CDN的性能可能会超过将运行时托管在与您的网站相同的服务器上所带来的好处。
底线是,如果您要在AMP页面上获得更高的性能,最好从How to make AMP even faster和implement server-side rendering中概述的提示开始。自托管框架may可以带来额外的性能优势,但是对于大多数网站而言,这可以忽略不计。