http2如何控制资源加载的优先级?

发布于 2022-09-12 00:27:17 字数 273 浏览 21 评论 0

在查看一些文章的时候,通常会看到这样一条特性http2可用优先加载某些重要的资源,但是不知道如何实现

在http1.1中script标签可以设置async和defer属性来延迟script脚本的加载。
css可以通过设置rel属性为 proload或者prefetch来进行预加载,变相的控制了资源的加载,这些都是一些实际的手段。

但是http2优先加载重要资源的特性好像只存在理论当中,没有查到具体的操作。

http2的push算是优先加载重要资源吗?除此之外还有没有其他方法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

折戟 2022-09-19 00:27:17

这是应用协议层的事儿,需要前(浏览器)、后(Web Server,如 nginx)两端的支持。

由浏览器根据资源类型、在发起 GET 请求时自动向 HTTP/2 的 PRIORITY 帧中追加优先级信息,对前端开发者来说是不透明的。

当然,你也可以自行实现一个 Web Server,按照自己理想的方式去解析 TCP 报文并调整优先级顺序;但浏览器一方你还是调整不了。

目前只有 Chrome(51 版本后) / Firefox(53 版本后) 支持,并且二者对于同样类型文件的给定优先级并不相同,但大体来说都是 HTML > CSS > Blocking Script > Font >= Image >= Async Script。

下面截图是 Chrome 开发者工具中有关优先级的显示。

image.png

参考:https://blog.cloudflare.com/b...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文