在网站开发岗位上安排图片与资源加载,核心是先把资源按“首屏必需”和“可延后”分开,再决定加载顺序与格式,最后用浏览器开发者工具验证,而不是一次性把所有图片都改成懒加载。第一次接手时,最关键的起点是列出页面资源清单并标出首屏内容,因为后续的压缩、懒加载、预加载都依赖这个划分。
打开一个典型页面,把资源分成三类:首屏可见的图片与字体、用户交互后才出现的图片、纯装饰性资源。首屏资源应优先加载,非首屏资源可以延迟。判断标准很简单:在常见屏幕尺寸下,不滚动就能看到的内容属于首屏。
这一步的产出是一张资源清单,标注每个资源的类型、体积、是否首屏必需。没有这张清单,后面的优化容易变成盲目压缩。
对首屏图片,使用现代格式并设置合适的尺寸。例如把一张 1200 像素宽的图直接显示在 400 像素宽的容器里,会浪费带宽。可以用 srcset 提供多个尺寸,让浏览器按屏幕选择。
对非首屏图片,使用原生懒加载属性 loading="lazy"。它由浏览器控制,不需要额外脚本。注意:首屏图片不要加这个属性,否则可能延迟显示。
对关键背景图或字体,如果确实影响首屏渲染,可以考虑预加载。例如在 <head> 中写 <link rel="preload">,但要控制数量,预加载过多反而会挤占带宽。
一个可执行的例子:假设页面顶部有一张横幅图,下方有 20 张商品图。做法是横幅图正常加载并压缩为 WebP,商品图全部加 loading="lazy",同时给每张图设置宽高属性,避免加载时布局跳动。这里的“假设”仅用于说明方法,不是真实项目数据。
实施后需要验证,而不是凭感觉判断。打开浏览器开发者工具的 Network 面板,刷新页面,观察:
如果发现首屏图片被懒加载了,检查是否误加了 loading="lazy"。如果发现非首屏图片仍然一开始就加载,检查是否用了 CSS 背景图或脚本提前请求。验证结果只有两种:符合预期,或定位到具体资源后回到实施阶段调整。
图片与资源加载不是一次性的任务。每次新增页面或组件时,按同一套规则判断:这个资源是否首屏必需?如果不是,是否加了懒加载?尺寸和格式是否合适?可以把检查项加入代码审查清单,减少后续返工。
另外,定期抽查线上页面的资源体积和请求数量,关注是否有新上传的大图未压缩。维护的重点不是追求某个固定分数,而是让加载行为与页面实际展示需求保持一致。
下一步建议:挑一个当前负责的页面,按上面的准备阶段列出资源清单,先只处理首屏图片与非首屏图片的划分,再逐步加入格式和懒加载调整。