核心做法是:先保证首屏文字和主图尽快出现,再把首屏之外的图片、图标、脚本和字体延后加载。对已有页面,先判断哪些资源是打开页面立刻要用的,哪些是滚动后才出现的,然后分别设置加载优先级。判断是否有效,看首屏是否不再被大图卡住、滚动时才加载的图片是否按预期出现,以及关闭脚本后正文是否仍可阅读。
打开浏览器开发者工具的“网络”面板,刷新页面,按体积从大到小排序。把请求分成三类:
分类后再决定处理顺序。如果首屏主图本身超过几百 KB,优先压缩和换格式,而不是先给页脚图片加延迟加载。判断依据是:资源是否在首屏范围内、是否阻塞文字渲染、压缩后是否仍满足清晰度要求。
首屏主图建议直接写在 HTML 的 <img> 中,并设置明确的宽高,避免图片加载后页面跳动。首屏以下的图片使用 loading="lazy",让浏览器接近可视区域时再请求。示例:
<img src="product.webp" width="800" height="600" loading="lazy" alt="产品图">
适用条件是图片位于首屏之外、且不参与首屏布局。如果图片在首屏内却加了懒加载,可能出现空白或延迟出现,反而不合适。验收信号是:首屏图片在页面打开后很快出现,向下滚动时后续图片才开始请求,且没有大面积布局偏移。
同一页面里,样式和字体的处理顺序会影响文字出现速度。可以执行的检查项:
判断结果的标准不是某个固定分数,而是首屏文字是否先出现、主图是否在可接受时间内可见、滚动时页面是否稳定。不同网络环境和设备会有差异,应在普通移动网络下多测几次。
loading="lazy",并写了宽高。如果某项检查不通过,先处理影响首屏的那一项,再处理滚动后才出现的资源。不要为了追求加载分数而把首屏主图也延迟,否则用户打开页面先看到空白。
在开发者工具的“网络”面板中重新加载,观察首屏资源是否先完成、延迟资源是否在滚动后才出现。再在手机模拟器或真实手机上打开一次,确认图片没有明显模糊、页面没有大幅跳动。若首屏仍然被某个大文件拖慢,回到资源分类步骤,确认它是否真的属于首屏关键资源。下一步可以选一个首屏最大的图片文件,压缩并替换后重新测试一次。