Web 首屏加载优化

首屏加载优化的核心思路,以及首屏资源、初始化逻辑和按需加载之间的关系。

#tech / dev / frontend #type / concept #status / growing

[!info] related notes

Web 首屏加载优化

首屏优化关注的是:用户第一次进入页面时,关键内容什么时候可见、什么时候可交互。

一句话定义

首屏优化的目标不是单纯让包变小,而是尽量减少首屏必须下载、执行和渲染的关键工作量。

最常见的优化方向

减少首屏资源体积

  • 代码分割
  • 路由按需加载
  • 图片和字体优化
  • 压缩与缓存

减少首屏同步执行逻辑

  • 把非关键初始化延后
  • 避免在入口同步拉入大量业务模块
  • 拆分首屏必须逻辑和非首屏逻辑

优先保障关键渲染路径

  • 保证关键 CSS 和关键内容优先到达
  • 非关键脚本延后执行
  • 减少阻塞渲染的资源

一个非常常见的问题

即使页面组件已经写成路由懒加载,如果入口仍然同步引入一大批初始化代码,那么这些业务模块还是可能提前进入首屏 chunk。

也就是说:

  • 懒加载组件不等于所有依赖都会自动懒加载
  • 首屏是否变轻,取决于依赖链和初始化时机

常见误区

  • 只看 chunk 数量,不看哪些代码其实被提前执行了
  • 把所有问题都归因于“请求多”,忽略同步初始化和主线程阻塞
  • 只追求打包结果好看,没有结合真实首屏体验指标

最短记忆方式

首屏优化就是把“首次进入必须做的事”尽量减到最少。

面试要点

来自 first-screen-optimization-interview-question 的面试视角整理。

一句话回答

首屏优化通常从减少首屏资源体积、减少同步初始化逻辑、优化关键渲染路径和合理利用缓存几个方向同时入手。

最稳的回答主线

  • 资源层:拆包、压缩、缓存、图片优化
  • 执行层:延后非关键初始化和非首屏逻辑
  • 渲染层:减少阻塞、保证关键内容优先渲染
  • 工程层:路由按需加载、分析依赖链、识别真正进入首屏的代码

最短记忆方式

把首屏必须下载、执行、渲染的东西尽量减到最少。

创建于 2025/1/1 更新于 2026/5/27