图片与资源加载安排的核心,是把首屏必需的资源优先、准时地送到浏览器,把非首屏和非关键资源延后或按需加载。对已有页面或项目的改进,不需要推倒重来,按下面的清单逐项检查、逐项调整即可。每一项都给出查什么、怎么查、结果说明什么。
查什么:首屏可见区域内的图片文件大小与格式。
怎么查:打开浏览器开发者工具的 Network 面板,刷新页面,按 Size 排序,看首屏图片的传输体积;同时看文件扩展名或 Content-Type,判断是 JPEG、PNG 还是 WebP、AVIF。
结果说明什么:如果单张首屏图片超过约 200KB,或仍是未压缩的大尺寸 PNG,就有优化空间。改用 WebP 或 AVIF 通常能在相近观感下显著减小体积;但需要确认目标浏览器支持,必要时保留 JPEG/PNG 作为回退。若图片实际显示宽度是 800px,却加载了 2400px 宽的源文件,属于典型浪费,应按显示尺寸准备多档图片。
查什么:首屏以下的图片是否在页面初始加载时就被全部请求。
怎么查:在 Network 面板刷新页面,观察首屏之外的图片是否在初始阶段就出现在请求列表里;也可在 Elements 面板查看这些 <img> 标签是否带有 loading="lazy"。
结果说明什么:如果首屏以下的图片全部随页面一起加载,会挤占带宽、拖慢首屏。给它们加上 loading="lazy" 可以让浏览器推迟到接近可视区域时再请求。注意首屏图片不要加懒加载,否则反而延迟关键内容出现。对长列表或图片墙,懒加载收益最明显;对只有一两屏的短页面,收益有限。
查什么:图片标签是否带有宽高信息,或容器是否预留了固定比例。
怎么查:在 Elements 面板查看 <img> 是否设置了 width、height 属性,或在 CSS 中给容器设置了 aspect-ratio。也可以在 Network 面板把网速调慢,观察图片加载前后文字是否发生位移。
结果说明什么:如果图片加载完成后页面内容突然下移,说明没有预留空间,会带来布局偏移。声明宽高或使用固定比例容器后,浏览器能提前占位,加载过程更平稳。这一项对以文字阅读为主、图片穿插其中的页面尤其重要。
查什么:头部引入的 CSS 和 JavaScript 是否阻塞了首次渲染。
怎么查:在 Network 面板看请求瀑布图,确认 HTML 之后是否在等待某些 JS 下载和执行才出现内容;在 Elements 或源码中查看 <script> 是否放在 <head> 且没有 defer 或 async。
结果说明什么:同步脚本会暂停 HTML 解析,放在头部容易造成白屏。给不影响首屏的脚本加 defer,或移到 <body> 末尾,可以更早显示内容。需要说明的是,这只影响加载与渲染顺序,与搜索引擎排名没有直接对应关系,不要把它当成排名手段。
查什么:网页字体、图标库、第三方组件是否一次性加载了全部内容。
怎么查:在 Network 面板按类型筛选 Font 和 Img,看字体文件是否包含大量用不到的字符,图标是否加载了整套字体或整包资源。
结果说明什么:如果只用到少量图标却加载整套图标字体,或字体文件覆盖了不需要的字形,属于可削减的负担。可以改为按需引入单个图标、对字体做子集化,或使用系统字体回退。判断标准是:这些资源是否出现在首屏、是否影响文字可见时间。若字体加载导致文字长时间不可见,可考虑先显示回退字体再切换。
选一个页面,按上面顺序走一遍:先用开发者工具记录当前的首屏图片体积、懒加载情况、布局偏移和阻塞脚本,再逐项调整,最后用同样的方法复测对比。假设某页面首屏有一张 1.2MB 的 PNG,改为按显示尺寸导出的 WebP 后降到约 150KB,这就是可验证的改进;具体数值因页面而异,不要套用固定目标。下一步,把这份清单固化成上线前的检查项,让每次新增图片或脚本时都先过一遍,避免问题反复出现。