你有使用过preload、preconnect、prefetch这些属性吗?说说它们都有什么作用?

是的,我了解 preloadpreconnectprefetch 这些前端性能优化相关的属性。它们各自作用如下:

  • preload (预加载): preload 是一种声明式的 fetch,用于强制浏览器请求当前页面关键资源,并将其存储在缓存中,以便在需要时更快地使用。它告诉浏览器:“我确定稍后会需要这个资源,请尽快下载”。

    • 作用: 提升关键资源的加载优先级,避免浏览器在发现需要该资源时才开始请求,从而减少页面加载时间。
    • 适用场景: 适用于字体、图片、脚本、样式表等关键资源。
    • 使用方法: 通过 <link> 标签,并设置 rel="preload"as 属性来指定资源类型。例如:
    <link rel="preload" href="style.css" as="style">
    <link rel="preload" href="image.png" as="image">
    <link rel="preload" href="script.js" as="script">
    <link rel="preload" as="font" type="font/woff2" crossorigin href="font.woff2">
    
    • 注意事项:
      • 必须指定 as 属性,以便浏览器正确处理资源。
      • 错误的 as 属性可能会降低性能。
      • 预加载的资源需要在页面中实际使用,否则浏览器可能会发出警告。
      • 对于字体文件,需要添加 crossorigin 属性。
  • preconnect (预连接): preconnect 允许浏览器在用户点击链接之前,提前建立与目标服务器的连接。这包括 DNS 解析、TCP 握手和 TLS 协商等步骤。

    • 作用: 减少连接建立的延迟,加快后续资源的获取速度。
    • 适用场景: 适用于用户可能点击的链接、第三方资源、API 接口等。
    • 使用方法: 通过 <link> 标签,并设置 rel="preconnect"。例如:
    <link rel="preconnect" href="https://example.com">
    
  • prefetch (预获取): prefetch 是一种低优先级的资源提示,用于告诉浏览器在空闲时间预取用户将来可能需要的资源。它暗示浏览器:“用户之后可能会访问这个页面/资源,如果现在有空闲时间,可以预先下载”。

    • 作用: 加快后续页面的加载速度,提升用户体验。
    • 适用场景: 适用于下一页面的资源、用户可能感兴趣的内容等。
    • 使用方法: 通过 <link> 标签,并设置 rel="prefetch"。例如:
    <link rel="prefetch" href="next-page.html">
    
    • 注意事项:
      • prefetch 的优先级很低,浏览器只会在空闲时间进行预取。
      • 预取的资源可能会被浏览器缓存清除。

总结:

特性 作用 优先级 何时使用
preload 预加载当前页面关键资源 确保尽快加载关键资源,例如字体、图片、脚本等
preconnect 预连接到指定服务器 中等 加快与第三方服务器的连接速度
prefetch 预获取将来可能需要的资源 提升后续页面加载速度

通过合理地使用 preloadpreconnectprefetch,可以有效地优化前端性能,提升用户体验。 选择哪种方式取决于资源的重要性以及何时需要它。 如果资源对当前页面至关重要,则使用 preload。 如果资源在将来需要,并且您希望加快连接速度,则使用 preconnect。 如果资源在将来可能需要,但不是必需的,则使用 prefetch

posted @   王铁柱6  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示