在网站设计步骤里安排图片与资源加载,核心判断是:先保证首屏可见内容所需的资源优先到达,再把非首屏图片、装饰性脚本和次要样式延后。具体做法不是把所有图片都压缩或全部懒加载,而是先收集证据,确认瓶颈来自图片体积、请求数量、加载时机还是阻塞关系,再决定改哪一项。
打开浏览器开发者工具的 Network 面板,刷新页面,按时间排序观察请求。重点看三类现象:
这三种现象对应不同原因,不能一律归为“图片没优化”。如果首屏文字本身由脚本渲染,那么真正该优先的是脚本而不是图片。判断依据是:首屏可见区域内,用户第一眼需要看到的内容是什么,哪些请求直接决定它出现。
按优先级可以把图片分成三组处理:
懒加载的适用条件是图片不在首屏,且页面有足够高度让用户滚动触发。如果图片本身就在首屏,懒加载反而会推迟它出现,这时应改为控制体积和格式,而不是延迟请求。
下面是一个文字示例,说明响应式图片的写法,实际使用时需替换为真实图片地址与尺寸:
<img src="small.jpg" srcset="small.jpg 480w, large.jpg 960w" sizes="(max-width: 600px) 480px, 960px" alt="示例">
这段写法让浏览器根据视口宽度选择文件,避免小屏设备下载大图。它解决的是体积选择问题,不解决请求时机问题。
脚本默认会阻塞 HTML 解析,样式表会阻塞渲染。如果脚本放在 <head> 中且没有 defer 或 async,浏览器可能先下载执行脚本,再继续处理后面的图片。判断方法是在 Network 面板看请求的先后顺序和瀑布图:如果图片请求明显排在脚本之后,且首屏空白时间较长,就要考虑调整脚本位置或加载方式。
需要区分的是:脚本延后不等于删除。对依赖脚本渲染的内容,延后可能导致页面结构变化。因此调整前先确认脚本是否影响首屏 DOM 生成。如果不确定,可以临时把脚本移到页面底部观察首屏变化,再决定是否保留这种安排。
面对具体页面,可以按以下步骤做决定:
适用条件是:页面已有明确的首屏目标,且能通过开发者工具复现。如果页面内容由用户交互后才出现,首屏判断标准要相应调整,不能直接套用上面的分组。
下一步可以打开一个具体页面,在 Network 面板中筛选 Img 和 Script 请求,记录前五个请求的顺序与体积,再对照上面的分组判断哪一项最值得先改。