管理好资源的加载,你需要了解的 preload、prefetch、preconnect 以及 dns-prefetch

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 前端西瓜哥

大家好,我是前端西瓜哥。

link 是一种 HTML 标签,用于加载外部资源。

最常见的用法,就是加载 CSS 样式文件,写法如下:

<link rel="stylesheet" href="./index.css">

rel 属性是 “关系” 的意思,它的值 stylesheet 表示使用的是样式表。

href 表示资源的地址,当前 HTML 文件通过这个地址来加载内容。

但 link 的功能不仅限于此,它还可以控制资源的下载优先级、提前和指定域名进行连接。

preload

<link rel="preload" href="./main.css" as="style">

preload,预先加载。作用是将对应资源的下载优先级提升为最高。

preload 负责的是提高下载优先级,并将其下载好,但不负责将资源嵌入到页面,你需要自己找到合适的地方将其显式嵌入。

同时 preload 也不影响资源的执行顺序。

如果有多个资源资源都用了 preload,谁先设置 preload 谁就先下载。

as 属性是必填的,不同类型文件对应的值也不同,比如 css 文件的 as 值为 style。

场景有:

  • 有字体的 CSS 先加载,防止字体突然的变化。
  • 按需加载语言包的语言包 js 文件最先加载。

prefetch

<link rel="prefetch" href="lib/jquery.min.js" as="script">

prefetch,先抓在手上不用,等下一个页面再用。

对于设置了 prefetch 的资源,浏览器会认为这个资源目前不会用到,但可能下个页面会用到,于是会将对应资源的下载优先级降为最低(Lowerst)。

在其他资源加载好了之后,下载队列空闲了,该资源才被下载缓存起来。

进入的下一个页面如果使用了这个资源,你会在开发者工具的 network 面板看到 prefetch cache


image.gif


场景有:

  • 工具类官网首页介绍工具用法时,偷偷加载好真正的工具页面需要的一些资源,等用户点进去。提高进入工具页面的加载速度,改善用户体验。

preconnect

<link rel="preconnect" href="https://cdn-s1.somecdnsite.com">

preconnect 的作用是提前和目标服务器进行连接。

这个连接过程包括(1)DNS 查询得到 IP,(2)TCP 三次握手,(3)HTTP 或 HTTPS 连接。

还是挺繁琐的,我们可以提前做这个连接操作,节省个一两百毫秒还是挺不错的。感觉网络不好或者波动的时候效果可能会更好些。


image.png


场景有:

  • 常用的 cdn 资源所在的域名先连接好
  • 视频不播放,在用户点击播放前,我们先连上对应域名

dns-prefetch

<link rel="dns-prefetch" href="https://cdn-s1.somecdnsite.com">

dns-prefetch,则是预先通过 DNS 查询得到指定域名对应的 IP,在真正请求该域名下资源时,可以省掉 DNS 查询这一步。

preconnect 的更细粒度版本。

preconnect 用多了也不好,可能反而会堵塞正常的请求,可以配合适量的 dns-prefetch,减少时间花费。

场景同 preconnect。

结尾

我们总结下:

  • preload:提高资源加载优先级。适用于提前加载字体,加载语言包等场景,
  • prefetch:降低资源加载优先级,在下载闲置时再下载缓存起来。适用于提高下一个页面使用该资源缓存以提高加载速度的场景。
  • preconnect:预先和目标域名进行连接,包括 DNS 查询、TCP、HTTP(S) 连接。
  • dns-prefetch:预先查询好目标域名的 IP。
相关文章
|
6月前
|
存储 网络协议 安全
必知的技术知识:DNS资源纪录(ResourceRecord)介绍
必知的技术知识:DNS资源纪录(ResourceRecord)介绍
|
3月前
|
网络协议 大数据 云栖大会
2024云栖大会 预告:IPv6与DNS基础资源专场
2024云栖大会 预告:IPv6与DNS基础资源专场
2024云栖大会 预告:IPv6与DNS基础资源专场
|
2月前
|
弹性计算 网络协议 网络安全
内网DNS解析&VPN网关联动实现云上访问云下资源
内网DNS解析&VPN网关联动实现云上访问云下资源
|
4月前
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
209 6
|
4月前
|
存储 数据挖掘 大数据
深度解析Hologres计算资源配置:如何根据业务场景选择合适的计算类型?
【8月更文挑战第22天】Hologres是一款由阿里云提供的分布式分析型数据库,支持高效的大数据处理与分析。本文通过电商优化商品推荐策略的案例,介绍了Hologres中的计算组型与通用型配置。计算组型提供弹性扩展资源,适合大规模数据及高并发查询;通用型则适用于多数数据分析场景,具备良好计算性能。通过实例创建、数据加载、计算任务建立及结果查询的步骤展示,读者可理解两种配置的差异并根据业务需求灵活选择。
58 2
|
4月前
|
JSON 数据格式
【Axure高手秘籍】掌握这招,让你的原型设计效率飙升!——元件库导入与使用教程及主流资源下载全解析
【8月更文挑战第20天】Axure RP是界面设计与交互原型制作的强大工具。掌握元件库能显著提升设计效率。元件库包含预设UI元素如按钮、表单等,可直接拖放构建布局。在Axure RP中,通过“元件”选项下的“库”可访问并导入新元件库。导入后,轻松拖放元件至画布调整,甚至自定义样式和交互。利用脚本还能模拟真实交互效果,如按钮点击反馈。推荐资源包括Axure Marketplace、UIZilla等,助力高效设计。
93 0
|
5月前
|
存储 SQL Python
`urllib.parse`模块是Python标准库`urllib`中的一个子模块,它提供了处理URL(统一资源定位符)的实用功能。这些功能包括解析URL、组合URL、转义URL中的特殊字符等。
`urllib.parse`模块是Python标准库`urllib`中的一个子模块,它提供了处理URL(统一资源定位符)的实用功能。这些功能包括解析URL、组合URL、转义URL中的特殊字符等。
|
6月前
|
XML 搜索推荐 数据格式
资源描述框架的用途及实际应用解析
**RDF(资源描述框架)**是一种用于机器理解网络资源的框架,使用XML编写。它通过URI标识资源,用属性描述资源,便于计算机应用程序处理信息。RDF在语义网上促进信息的确切含义和自动处理,使得网络信息可被整合。RDF语句由资源、属性和属性值组成。RDF文档包括`&lt;rdf:RDF&gt;`根元素和`&lt;rdf:Description&gt;`元素,后者用`about`属性标识资源。RDF还支持容器(如`&lt;Bag&gt;`、`&lt;Seq&gt;`和`&lt;Alt&gt;`)来描述集合。RDFS是RDF的扩展,提供描述类和属性的框架,而达布林核心是一组预定义属性,用于描述文
188 0
|
7月前
|
域名解析 负载均衡 网络协议
【专栏】理解DNS对于利用网络资源和理解互联网运作至关重要
【4月更文挑战第28天】DNS是互联网的关键组件,将域名转换为IP地址,简化了上网方式。它是一个分布式数据库,类似电话簿,但具有动态、层次化和分布式的特性。工作原理涉及多步查询过程,从本地DNS到根服务器,最终找到权威名称服务器获取IP。DNS还支持负载均衡、地理定位和DNSSEC安全技术。随着技术发展,DNS的角色不断扩展,提供域名隐私保护和智能DNS等服务,是连接用户与数字世界的桥梁。理解DNS对于利用网络资源和理解互联网运作至关重要。
153 1
|
7月前
|
开发者 Python
micawber,解析和嵌入媒体资源工具
micawber,解析和嵌入媒体资源工具
77 1

相关产品

  • 云解析DNS
  • 推荐镜像

    更多