Web 性能优化:Preload与Prefetch的使用及在 Chrome 中的优先级

本文深入探讨了Chrome网络栈如何处理preload和prefetch,以及它们在Web性能优化中的应用。 preload用于强制浏览器在不阻塞onload事件时请求关键资源,而prefetch则告诉浏览器未来可能需要的资源。文章通过实例展示了 preload 在减少加载时间和提高文本绘制速度上的效果,并解释了它们的缓存行为、优先级处理、适用场景及可能的带宽浪费问题。此外,还讨论了HTTP/2服务器推送与preload的关系,以及如何判断浏览器对preload的支持情况。
摘要由CSDN通过智能技术生成

 

 

今天,我们将深入研究Chrome 的网络栈,以明确 web 加载原语(如<link rel= preload > & <link rel= prefetch >) 背后的工作原理,以便你能够更有效地使用它们。

如其他文章所述,preload 是一个声明式 fetch,可以强制浏览器在不阻塞 document 的 onload 事件的情况下请求资源。

Prefetch 告诉浏览器这个资源将来可能需要,但是什么时间加载这个资源是由浏览器来决定的。

在预加载(perload)之前,网络请求从这里开始,预加载之后,它在解析时从左向右移动

 

 

使用预加载(perload)的一些案例

在详细介绍 预加载(perload) 之前,先来看看一些使用 预加载(perload) 的案例。

http://Housing.com 在对他们的渐进式 Web 应用程序的脚本转用 proload 看到大约缩短了10%的可交互时间

 

 

Shopify 使用 preload 加载 Web字体后,Chrome 桌面版)的文本绘制时间(1.2秒)提高了50%,这完全解决了他们的文字闪动问题。

 

 

左边:使用 preload,右边:不使用 preload

 

 

使用<link rel="preload"> 加载字体

Treebo,印度最大的旅馆网站之一,在 3G 网络下对其桌面版试验,在对其顶部图片和主要的 Webpack 打包文件使用 preload 之后,在首屏绘制和可交互延迟分别减少了 1s。

 

 

同样的,在对自己的渐进式 Web 应用程序主要打包文件使用 preload 之后,Flipkart 在路由解析之前 节省了大量的主线程空闲时间(在 3G 网络下的低性能手机下)。

 

 

上面:没有使用 proload 加载,下面:使用 preload 加载

Chrome 数据保护程序团队发现,对于那些可以在脚本和 CSS 样式表上使用 preload 的页面,发现页面首次绘制时间获得平均 12% 的速度提升。

对于 prefetch(预读取),它被广泛使用,在 Google 我们仍用它来预读取一些可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值