AMP 需要异步 js;有没有办法进行本地回退?

AMP requires async js; is there a way to have a local fallback?

Google 的 AMP(加速移动页面)指南建议 AMP javascript 的加载应该是 async:

<script async src="https://cdn.ampproject.org/v0.js"></script>

如果 CDN 无法传送,是否有办法确保加载 javascript 文件的本地后备版本?

通常情况下,我会在脚本加载后立即添加一个js测试,看它是否加载了一些常量(比如jQuery)。但是,当使用 async 时,似乎没有一种简单的方法来确定它是否会加载,因为在脚本加载和确定脚本是否加载的测试之间存在潜在的竞争条件。

是的,有一种方法可以提供本地回退:

<script src="https://cdn.ampproject.org/v0.js" onerror="document.write('<script src=\'v0.js\' async></script>')" async></script>

已在最新的 Firefox 中测试。