# 共同点
- 浏览器资源加载优化机制,通过提前加载资源来提升页面性能
- 都是
<link> 属性 rel 的关键字(值)
# 不同点
| 特性 |
prefetch |
preload |
| 用途 |
未来页面导航所需资源的预获取 |
当前页面渲染的关键资源的提前加载 |
| 优先级 |
低,浏览器空闲时才加载 |
高,立即加载 |
| 应用场景 |
后续导航可能用到的资源(例如单页应用的下一页面) |
当前页面渲染需要的关键资源(如关键 CSS、JS 等) |
| 浏览器行为 |
不会立即使用,未来可能会用到的资源 |
页面需要立即使用的资源 |
| 影响页面渲染 |
不影响当前页面渲染 |
加速页面渲染,优化加载顺序 |
# 适用场合
prefetch 适合用在用户未来可能访问的页面、资源上,以便页面切换时加载更快。
preload 适合用在当前页面的关键资源上,优化初次渲染时的资源加载顺序,确保关键资源不会被阻塞。
例子:
| <link rel="prefetch" href="/next-page.js" /> |
| <link rel="preload" href="/styles.css" as="style" /> |
| <link rel="preload" href="/script.js" as="script" /> |
| <link rel="preload" href="/image.jpg" as="image" /> |
使用 preload 需要指定资源类型 (as 属性),如 script、style、image 等,以便浏览器正确处理这些资源。