安排图片与资源加载,核心是让首屏只加载“必须马上看到”的内容,其余图片、脚本和样式推迟到需要时再加载。具体做法是先列出页面资源清单,按首屏可见、滚动后可见、交互后才需要三类划分,再分别用压缩、懒加载、异步加载和缓存处理。判断是否有效,看首屏主要图片是否在页面打开后尽快出现,以及滚动时图片是否按需补上而不是一次性全部请求。
在浏览器开发者工具的“网络”面板刷新页面,观察请求列表。重点看三类信息:请求数量、每个资源的大小、以及图片和脚本出现的先后顺序。如果首屏还没显示完整,就已经有几十张图片或大体积脚本在排队,说明加载顺序需要调整。
可能的原因包括:图片没有压缩、所有图片都写在初始 HTML 里、脚本放在头部阻塞渲染、同一张图被重复请求。已经定位的原因要靠面板数据确认,不能只凭感觉判断。
把页面资源分成三组:
判断标准很简单:如果某张图不加载,用户是否仍能理解首屏内容?能,就往后放。
按下面顺序执行,每步都能单独验证:
<img> 加上懒加载属性,例如 loading="lazy",首屏主图则不要加,避免延迟显示。defer 或 async,避免阻塞 HTML 解析;样式表尽量精简,非关键样式可延后。假设一个页面首屏有一张大图和三张小图,下方还有二十张文章配图。合理的安排是:首屏四张图正常加载并压缩,下方二十张全部懒加载。这样初始请求数会明显下降。这个例子只说明划分思路,实际数量以页面为准。
回到开发者工具的网络面板,清空记录后刷新页面,检查三点:
如果懒加载图片始终不出现,可能是脚本冲突或属性写错;如果首屏图仍然很慢,先查单张图体积,再查服务器响应时间。不同原因的解法不同,不要一次性改动所有设置。
先打开一个现有页面,用开发者工具记录一次完整加载过程,把请求按首屏必需、滚动可见、交互后需要三栏列出来。然后只改首屏以下图片的懒加载和首屏图片的压缩这两项,刷新复查请求数量和首屏显示速度,确认有效后再处理脚本与缓存。