preload、prefetch
preload
preload是一种声明式的资源预加载技术,它告诉浏览器页面即将需要的资源,并请求浏览器提前加载这些资源。preload的主要特点包括:
- 高优先级:preload加载的资源通常具有较高的优先级,浏览器会尽可能快地加载这些资源,但加载过程不会阻塞文档的解析或
window
的onload
事件。 - 指定资源类型:通过
as
属性,preload可以指定资源的类型(如script
、style
、image
、font
等),这有助于浏览器设置正确的资源加载优先级和发送适当的Accept头部信息。 - 提升性能:preload可以有效减少页面的渲染阻塞时间,提升页面加载速度,特别是对于关键资源的加载。
使用场景:preload通常用于加载当前页面必需的关键资源,如首屏渲染所需的JavaScript、CSS、字体文件等。
prefetch
prefetch是一种资源预读取技术,它告诉浏览器未来可能会需要的资源,并请求浏览器在空闲时加载这些资源。prefetch的主要特点包括:
- 低优先级:prefetch加载的资源具有较低的优先级,浏览器会在完成其他高优先级资源的加载后,才考虑加载这些资源。
- 非阻塞:prefetch加载的资源不会阻塞文档的解析或
window
的onload
事件。 - 未来使用:prefetch的资源主要用于加速未来页面的加载速度,特别是当用户即将导航到另一个页面时。
使用场景:prefetch通常用于加载未来页面可能会用到的资源,如用户可能点击的链接所指向的页面的资源。