安排图片与资源加载的核心不是“把图片压到最小”,而是先判断瓶颈出现在哪里:是单张图片体积过大、首屏加载了不该加载的图片,还是资源请求顺序不合理。一个常见误解是“图片越小越快”,于是把所有图片统一压成低质量小图。结果往往是首屏图片模糊、用户重新加载,或者关键视觉被压缩到不可用。正确做法是:先收集证据定位瓶颈,再按图片用途分档处理。
加载慢可能来自多个环节,压缩只是其中一项。若瓶颈是服务器响应慢、图片数量过多、或首屏加载了屏幕外图片,单纯压缩单张图片体积收效有限。判断方法:打开浏览器开发者工具的 Network 面板,刷新页面,观察加载时间最长的资源类型。如果多数时间花在等待服务器响应(TTFB 高),压缩图片帮助不大;如果大量图片同时请求且体积总和很大,才轮到图片优化。
不同位置的图片对质量和尺寸要求不同,可以分成三类处理:
适用条件:页面图片数量超过 10 张、或首屏加载时间明显偏长时,分档处理收益更明显。判断结果:分档后重新测 Network,若首屏关键图片请求数下降、总体积下降,说明方向正确。
给图片加 loading="lazy" 可以推迟屏幕外图片的加载,但首屏图片不应延迟,否则会拖慢首屏呈现。一个可执行的检查项:在开发者工具中查看首屏图片是否被标记为 lazy。如果是,去掉该属性再测一次。适用条件:长页面、图片较多的内容页。判断结果:首屏图片请求时间提前、屏幕外图片请求延后,说明安排合理。
浏览器对资源的处理有优先级。关键 CSS、首屏图片应尽早请求;非关键脚本、屏幕外图片可以延后。可以执行的步骤:
<head> 中同步加载。defer 或移到页面底部。适用条件:页面包含多个脚本或样式文件时。判断结果:若首屏内容更早出现,说明加载顺序调整有效;若没有变化,瓶颈可能在其他环节,继续用 Network 面板排查。
面对“加载慢”的具体问题,不要先改代码。先记录三项证据:加载时间最长的资源、首屏图片的实际展示尺寸与文件尺寸、以及请求总数。有了这三项,再判断是压缩、延迟加载还是调整顺序。下一步:打开开发者工具 Network 面板,刷新一次页面,把耗时最长的前五个资源列出来,再对照本文的分档方法逐项处理。