一段时间以来,我一直在这里遵循Google的建议(https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery),在折叠CSS上方内联关键代码,以加快加载时间。我想知道,随着http2的采用率越来越高,这仍然有必要吗?我的理解是我理解http2允许通过一个连接进行并行请求的方式,因此CSS可以立即开始下载吗?如果我对http2的工作方式的理解不正确,请有人纠正我。
一段时间以来,我一直在这里遵循Google的建议(https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery),在折叠CSS上方内联关键代码,以加快加载时间。我想知道,随着http2的采用率越来越高,这仍然有必要吗?我的理解是我理解http2允许通过一个连接进行并行请求的方式,因此CSS可以立即开始下载吗?如果我对http2的工作方式的理解不正确,请有人纠正我。
Answers:
您对通过HTTP / 2不再内联CSS的需求是正确的。实际上,HTTP / 2最佳实践暗示了内联的反面。您和这篇文章的任何读者都徘徊的问题是,什么时候才是进行此转换的时间?
实际上,只有在仔细评估用户的浏览器/客户端功能以接受HTTP / 2后,才可以将内联更改为不再内联(图像精灵也是如此)。使用分析功能来告知您的决定可以消除猜测。
随着时间的流逝,看到对apache,mod_pagespeed,nginx,vanish以及其他仅针对HTTP / 1客户端/浏览器自动内联的修改,我不会感到惊讶。因此,请继续关注主要Web服务器的版本更新,以帮助自动执行此更改。
有关HTTP / 2的更多信息,我强烈建议与Google http / 2背后的主要架构师Ilya Grigorieva一起使用有关HTTP / 2的changelog.com播客:在此处收听访谈
内联的想法仍然是一个好主意,因为对CSS的请求仍然花费相同的时间,并且在下载CSS文件时仍会阻止页面。HTTP / 2不能加快下载速度。它允许并发下载。这样,图像和其他文件就不会被束缚起来,等待它们在一行中的位置,但是,再次需要花费与HTTP / 2之前一样多的时间来下载,执行或安装它们。