在手机网站制作中,图片与资源加载的合理安排是:先让首屏可见内容用最小资源快速出现,再把非首屏图片、字体、脚本和第三方组件改为按需加载或延迟加载。判断标准不是“全部加载得多快”,而是首屏是否在用户可接受的时间内可读、可点、可滚动,以及后续内容是否在用户快到达时已经准备好。
这个思路适用于已有页面或项目的改进,不要求推翻现有结构。前提是你能改动模板、样式或脚本中的资源引用方式,并能用浏览器开发者工具观察网络请求和渲染过程。
打开页面后不滚动就能看到的内容,属于首屏资源。首屏里的主图、logo、关键文字所用字体、首屏轮播的第一张图,应优先加载。首屏以下的商品图、长文配图、评论区头像、页脚图标,属于非首屏资源,可以延迟。
一个可执行的检查方法是:在手机浏览器或开发者工具的手机模拟模式下打开页面,开启网络限速,观察首屏出现前有哪些请求。把请求按“首屏可见”“滚动后才可见”“交互后才出现”三类标记。标记为首屏可见的保留正常加载;后两类改为延迟加载或按需加载。
判断结果:如果首屏出现前仍在下载大量首屏以下的图片,说明加载顺序需要调整;如果首屏可读后,滚动到下一屏时图片才空白一下再出现,说明延迟加载的触发距离需要提前。
手机屏幕宽度有限,把桌面端大图直接缩小显示,会浪费带宽和解码时间。改进时按展示尺寸准备图片,而不是按原图尺寸上传。例如列表缩略图展示宽度约 300 像素,就不要用 2000 像素宽的图。
适用条件是图片内容允许压缩。如果图片包含细小文字或需要放大查看,压缩要更保守,并保留点击查看大图的入口。
延迟加载的核心是:图片进入视口附近时再请求。常见做法是给非首屏图片加 loading="lazy",或用脚本监听滚动与交叉观察器。首屏主图不要加延迟加载,否则会拖慢首屏。
短例子:假设一个商品列表页有 20 个商品图,首屏只显示 4 个。把第 5 到第 20 个商品图改为延迟加载,并设置提前约一屏的距离开始请求。用户快速滚动时,图片在到达前已经开始下载,不容易看到空白;用户不滚动时,后 16 张图不占用初始带宽。
验收信号:首屏出现时间没有变慢;滚动过程中图片基本能跟随出现;网络面板里初始请求数量明显减少。若滚动时频繁空白,把触发距离调大;若初始请求仍然很多,检查是否有脚本提前批量请求了所有图片。
图片之外,阻塞渲染的脚本和字体同样影响手机端体验。改进时先确认哪些资源是首屏必须的,哪些可以延后。
这里要区分“可能原因”和“已经定位的原因”。页面慢可能是图片太大,也可能是脚本阻塞、服务器响应慢或第三方请求超时。不要只凭感觉断定是图片问题,应结合网络面板中每个请求的耗时和大小判断。
第一步,用手机模式记录当前首屏出现前的请求清单。第二步,压缩并调整首屏图片尺寸,首屏主图正常加载。第三步,给首屏以下图片加延迟加载,设置提前触发距离。第四步,把非首屏脚本和第三方组件延后。第五步,在限速网络下重新打开页面,对比首屏可读时间、初始请求数量和滚动时图片出现情况。
下一步,你可以先挑一个访问量较高的手机页面,只改首屏图片尺寸和非首屏图片延迟加载这两项,观察首屏可读时间和滚动体验是否改善,再决定是否继续处理脚本与字体。