网站开发入门阶段安排图片与资源加载,核心判断只有一条:首屏可见、影响布局和交互的资源优先,其余图片、图标、字体和非关键脚本延后。具体做法可以先直接加载首屏主图,其余图片用懒加载,脚本加 defer,再根据实际表现复查。下面按观察、判断、处理、复查四步说明。
打开浏览器开发者工具的“网络”面板,刷新页面,按时间排序,重点看三件事:哪些资源在首屏渲染前就开始下载,哪些图片在页面底部却和首屏图片同时请求,脚本是否阻塞了后面的内容显示。
如果一张位于页面底部的商品图、文章配图在打开瞬间就发起请求,它就在和首屏关键资源抢带宽。这不是错误,但需要判断它是否值得。
关键资源可以按三个条件筛选,满足任意一条就优先:
反过来,滚动几屏后才出现的图片、页脚图标、弹窗里的插图、非首屏轮播图,都属于可以延后的资源。判断依据不是文件大小,而是“用户不滚动、不点击时是否需要它”。
直接加载指浏览器解析到标签就发起请求。适合首屏主图、logo、首屏背景图。写法上给图片明确宽高,避免加载完成后页面跳动:
<img src="hero.jpg" width="1200" height="600" alt="首屏主图">
适用条件:图片确实出现在首屏,且尺寸经过压缩。判断结果:如果首屏主图很大又未压缩,直接加载会拖慢首屏,应先压缩再保留直接加载。
懒加载指图片进入视口附近时才请求。现代浏览器支持原生懒加载:
<img src="photo.jpg" loading="lazy" width="800" height="500" alt="文章配图">
适用条件:图片位于首屏以下,或藏在标签页、折叠面板、弹窗中。判断结果:如果给首屏主图加了 loading="lazy",浏览器可能推迟它的请求,反而让首屏出现空白,这时应去掉懒加载。
两种方案的比较依据可以归纳为:资源是否首屏可见、是否影响布局、是否影响首次交互。三者有其一,用直接加载;三者都不满足,用懒加载。
脚本默认会阻塞 HTML 解析。普通脚本放在 </body> 前,或使用 defer 让它在文档解析完成后按顺序执行:
<script src="app.js" defer></script>
只有确实需要提前执行的少量代码才用内联脚本。字体方面,如果首屏文字依赖自定义字体,可以先加载必要字重;非首屏字重延后,避免字体文件拖慢文字显示。
如果首屏变快但滚动时图片出现明显延迟,说明懒加载触发距离太近,可以适当提前预加载临近图片。如果首屏仍然慢,检查是否有非关键脚本放在头部、图片是否未压缩。
下一步:挑一个你正在做的页面,打开网络面板记录当前请求顺序,按上面的判断条件标出哪些该直接加载、哪些该懒加载,改完后用同一面板对比请求时机。