http2如何控制资源加载的优先级?
在查看一些文章的时候,通常会看到这样一条特性http2可用优先加载某些重要的资源,但是不知道如何实现
在http1.1中script标签可以设置async和defer属性来延迟script脚本的加载。
css可以通过设置rel属性为 proload或者prefetch来进行预加载,变相的控制了资源的加载,这些都是一些实际的手段。
但是http2优先加载重要资源的特性好像只存在理论当中,没有查到具体的操作。
http2的push算是优先加载重要资源吗?除此之外还有没有其他方法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是应用协议层的事儿,需要前(浏览器)、后(Web Server,如 nginx)两端的支持。
由浏览器根据资源类型、在发起 GET 请求时自动向 HTTP/2 的 PRIORITY 帧中追加优先级信息,对前端开发者来说是不透明的。
当然,你也可以自行实现一个 Web Server,按照自己理想的方式去解析 TCP 报文并调整优先级顺序;但浏览器一方你还是调整不了。
目前只有 Chrome(51 版本后) / Firefox(53 版本后) 支持,并且二者对于同样类型文件的给定优先级并不相同,但大体来说都是 HTML > CSS > Blocking Script > Font >= Image >= Async Script。
下面截图是 Chrome 开发者工具中有关优先级的显示。