资源预加载作为HTTP标头或响应中的标记之间有什么权衡?

时间:2016-12-02 11:57:44

标签: html http web-performance

因此可以通过声明性标记将预加载https://w3c.github.io/preload/定义为标记

<link rel="preload" href="/styles/other.css" as="style">

或作为HTTP标头

Link: <https://example.com/other/styles.css>; rel=preload; as=style

但两者之间的权衡是什么?在什么情况下应该使用标签,反之亦然?

1 个答案:

答案 0 :(得分:1)

嗯,这应该是显而易见的。如果它在HTML中,则需要解析HTML。在解析标题之后会发生这种情况,因为您需要标题知道您首先解析HTML(而不是,image/jpegtext/plain

这实际上是否会导致性能差异?与大多数性能问题一样,一般来说这是不可能的。重点仍在于将I / O与执行分开,这两种方法都是如此。

CDN和代理通常使用标头进行各种访问优化和缓存。这显然比解析HTML便宜,所以也许我们会看到一些相关的建议:)例如,我可以想象一个代理在它甚至获取HTTP头之前基于HTTP头启动预加载 - 只是通过观察什么类型的请求中的常见模式通常意味着什么样的预加载。当预测适合时,它可以很好地消除获取此延迟的时间,特别是在高延迟连接和长时间运行的请求中。