在舟山网站开发中安排图片与资源加载,核心是把首屏要用的图片和脚本优先、准确地送到用户面前,把非首屏内容延后。具体做法是:先盘点页面上所有图片、字体、脚本和样式表,给它们分级;再把首屏关键资源直接加载,其余图片改为懒加载,脚本按需异步执行;最后用浏览器开发者工具核对加载顺序和体积,确认没有阻塞渲染的资源。
改进加载顺序之前,先把页面资源列成一张清单,判断哪些属于关键资源。判断依据不是文件大小,而是它是否出现在首屏、是否影响首屏布局和文字可读性。
这一步的产出应该是一张表,至少包含资源路径、类型、是否首屏、当前加载方式四项。没有这张表,后面的懒加载和预加载很容易加错位置。
最关键的一步是区分首屏图片和首屏以下图片,并给它们不同的加载策略。
首屏图片直接写在 HTML 的 <img> 标签里,设置明确的宽高,避免图片加载完成后页面跳动。首屏主图可以考虑加 fetchpriority="high" 提示浏览器优先处理,但不要给所有图片都加,否则等于没有优先级。
首屏以下的图片统一加 loading="lazy",让浏览器在图片接近视口时才请求。对于轮播图,只加载当前展示的第一张,其余等切换时再加载。背景图无法用 loading 属性时,可以通过监听滚动位置,在元素进入视口前再设置背景图路径。
脚本方面,不影响首屏渲染的第三方脚本改为 async 或 defer,或者放到页面底部。样式表只保留首屏必需的,其余按媒体条件拆分,例如打印样式用 media="print" 单独引入。
图片格式上,能在不损失可见质量的前提下改用更省流量的格式就改,但格式转换要放在加载策略确定之后。顺序颠倒容易出现“格式换了,加载时机仍然不对”的情况。
改完之后必须验证,不能只看代码。打开浏览器开发者工具的“网络”面板,刷新页面,按时间排序,检查以下项目:
判断结果的标准是:首屏内容尽快可见,首屏以下资源不抢占带宽。如果首屏图片仍然排在大量非关键资源之后,说明优先级设置或懒加载范围需要调整。
加载安排不是一次性的。后续新增图片和脚本时,沿用同一套分级规则,才能避免问题反复出现。可以约定:新加的图片默认加 loading="lazy",只有确认属于首屏才去掉;新加的第三方脚本默认异步,并记录用途和体积。定期用开发者工具抽查主要页面,重点看首屏资源数量和总体积是否随版本更新而膨胀。
下一步,挑一个当前访问量较高的页面,按上面的清单列出资源、标注首屏归属,先只改首屏以下图片的懒加载,再用开发者工具对比修改前后的请求时机。