首页 > 其他分享 >你有使用过preload、preconnect、prefetch这些属性吗?说说它们都有什么作用?

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

时间:2024-11-27 09:10:59浏览次数:6  
标签: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

标签:preload,浏览器,preconnect,prefetch,资源,加载
From: https://www.cnblogs.com/ai888/p/18571474

相关文章

  • preload、prefetch
    preloadpreload是一种声明式的资源预加载技术,它告诉浏览器页面即将需要的资源,并请求浏览器提前加载这些资源。preload的主要特点包括:高优先级:preload加载的资源通常具有较高的优先级,浏览器会尽可能快地加载这些资源,但加载过程不会阻塞文档的解析或window的onload事件。指定资......
  • 使用 preloadRouteComponents 提升 Nuxt 应用的性能
    title:使用preloadRouteComponents提升Nuxt应用的性能date:2024/8/19updated:2024/8/19author:cmdragonexcerpt:preloadRouteComponents是提升Nuxt应用性能的一个简单而有效的工具。通过在适当的时候预加载路由组件,你可以为用户提供更快速、更流畅的导航体验。......
  • 使用 preloadComponents 进行组件预加载
    title:使用preloadComponents进行组件预加载date:2024/8/18updated:2024/8/18author:cmdragonexcerpt:摘要:本文介绍Nuxt3中的preloadComponents功能,用于预加载全局注册的组件以减少首次渲染阻塞时间,通过实例演示如何设置并使用该工具来提升页面性能。categories:......
  • 使用 prefetchComponents 进行组件预取
    title:使用prefetchComponents进行组件预取date:2024/8/17updated:2024/8/17author:cmdragonexcerpt:摘要:本文介绍Nuxt.js中的prefetchComponents功能,用于预取组件以提高用户体验。通过在客户端后台下载和缓存组件,确保在用户需要时快速加载。文章涵盖了prefetchComp......
  • 安装Toolkits,使用prefetch下载SRA数据库
    准备安装Toolkits建议conda安装,命令如下。(兼容性还行,没必要新建环境)condainstall-cbiocondasra-tools注意:使用时记得先激活conda环境。直接安装,请参考:SRAToolKit(sra-tools)的安装和使用配置prefetch下载路径prefetch的默认目录是配置Toolkits的路径,非常建议更......
  • android IO Prefetch源码分析
    I/OPrefetcher是高通本身提供的一套优化方案,可以用在Android手机App冷启动的时候。本文基于androidQ主要分libqti-iopd、vendor.qti.hardware.iop@2.0-impl、libqti-iopd-client_system、libqti-perfd-client_system、libperfconfig、libqti_performance,编译后在/vendor/lib/目......
  • xctf smarty 利用 LD_PRELOAD 环境变量绕过disable_functions
    进来看页面一眼看出为smarty注入,尝试查看smarty版本再进行下一步操作。可以看到是3.1.30那么就可以利用if标签来进行注入。利用file_put_contents上传木马。接下来蚁剑访问,发现没有权限,想到可能需要绕过disable_functions,而绕过disable_functions就那么几种,尝试利用LD_PRELOAD......
  • stm32影子寄存器、预装载寄存器,TIM_OC1PreloadConfig和TIM_ARRPreloadConfig的作用
    一直没搞清楚stm32定时器的TIM_OC1PreloadConfig、TIM_ARRPreloadConfig函数的作用,影子寄存器、预装载寄存器、重载寄存器的概念。今天来研究一下:图中有阴影的小方框,代表该功能对应的寄存器有影子寄存器,也就是:PSC预分频器、自动重装载寄存器、REP寄存器和4个通道的捕获/比较寄存......
  • Intel Pentium III CPU(Coppermine, Tualatin) L2 Cache Latency, Hardware Prefetch
    这几天,偶然的机会想到了困扰自己和其他网友多年的IntelPentiumIII系列处理器缓存延迟(L2CacheLatency),以及图拉丁核心版本是否支持硬件预取(HardwarePrefetch)问题。手头的支持图拉丁核心处理器的i815主板还在正常服役中,铜矿和图拉丁核心处理器也都有,所以就专门做了这一期调查,感......
  • vue项目打包发现index.js加载了两次?差别在于请求头purpose:prefetch
    上线后打开f12,开启禁用缓存=>发现index.js加载了两次;6.6M直接双倍流量;一番研究得知:vue-cli打包时,会将一些文件preload和prefetch;(1)preload(预先加载文件)app.jsvendor.js(2)prefetch(闲时加载)index.js/router懒加载独立打包的文件【就是那串注释标明打包在xx模块用的】再者:启......