把图片和资源加载安排好的核心做法是:先保证首屏可见内容尽快出现,再把非关键图片、脚本和字体延后加载,同时给图片设置明确的宽高避免页面跳动。对已有页面做改进时,优先处理体积最大的图片、阻塞渲染的脚本和缺失尺寸标注这三类问题,比重新设计整个页面更快见效。
页面加载时,浏览器需要先拿到并处理一部分资源才能显示内容,这部分叫关键资源,通常包括首屏用到的样式、字体和主图。非关键资源包括折叠线以下的图片、轮播图的后几张、页脚图标、第三方统计脚本等。
判断方法很直接:在浏览器开发者工具的网络面板里刷新页面,按加载顺序查看,问自己两个问题——这个资源没加载完之前,用户能看到主要内容吗?它是否影响首屏布局?如果答案是否定的,就可以推迟。
适用条件是页面已有稳定结构、内容不再频繁改动。如果页面还在反复调整布局,过早做精细的加载优化容易白费功夫。
体积是图片拖慢加载的主要原因,处理顺序建议如下:
<img> 写上 width 和 height。这样浏览器在图片下载完成前就能预留位置,避免文字被挤来挤去。验收信号:首屏主图在普通网络下能较快显示轮廓,页面加载过程中文字位置基本不动。如果滚动时内容频繁跳动,多半是尺寸没写或写错。
延迟加载的意思是,图片进入视口附近时才开始下载。对折叠线以下的图片,这能明显减少首屏需要请求的资源数量。
现代浏览器已支持在 <img> 上直接写 loading 属性来控制,不需要额外脚本。但要注意两点:
判断结果:在开发者工具里模拟慢速网络并滚动页面,观察图片是否在接近视口时才发起请求。如果所有图片在页面打开瞬间就全部请求,说明延迟加载没生效。
脚本是常见的阻塞来源。放在 <head> 里的普通脚本会打断页面解析,导致内容迟迟不显示。可执行的调整包括:
这里要区分“可能原因”和“已定位的原因”。页面慢可能是脚本阻塞,也可能是服务器响应慢、图片过大或网络本身的问题。只有通过开发者工具看到某个脚本确实占用了大量解析时间,才能说它是主因,不要凭感觉下结论。
做出调整后,用同一台设备、同一网络环境对比改动前后的表现,重点看三项:首屏主要内容出现的时间、页面加载过程中的布局跳动次数、总请求数量与总体积。
假设一个页面原本首屏需要下载五张大图,改动后只保留一张首屏图、其余延迟加载,那么在相同网络下首屏出现时间通常会缩短——这是假设示例,实际幅度取决于原图体积和网络条件,不要当成固定结论。
如果改动后指标没有改善,先检查是否仍有资源阻塞渲染,再确认延迟加载的图片是否错误地包含了首屏内容。下一步可以从当前页面体积最大的那一张图片开始处理,改完立即用开发者工具复测,逐项确认效果。