在网站建设流程中,图片与资源加载的安排原则是:先让首屏可见内容所需的图片和样式优先加载,其余内容延后或按需加载。时间和人手有限时,不要平均用力,应先把首屏主图、关键样式和字体处理好,再处理折叠线以下的图片、第三方脚本和非必要装饰资源。
打开页面后不滚动就能看到的内容,属于首屏范围。首屏里出现的图片、背景图、图标字体、主样式表,通常应放在优先加载的位置。判断方法很简单:用浏览器开发者工具打开网络面板,刷新页面,观察前几秒内请求了哪些文件,哪些文件加载完成后页面才变得可读。
如果资源很多而人手有限,先处理首屏资源,收益通常比优化页脚图片更直接。适用条件是页面结构相对固定;如果页面是无限滚动或图片墙,则应改为分批加载策略。
同一张图,尺寸和格式不同,加载代价差别很大。安排加载顺序之前,先检查图片是否被放大显示。例如一个实际显示宽度为 600 像素的图片,如果源文件是 2000 像素宽,就会浪费带宽。
常见的处理选择:
假设一个页面首屏有一张主图和三张小图标。把主图从 1.5 MB 压缩到 200 KB 以内,把图标改成 SVG,通常比调整加载顺序带来的改善更明显。这里的关键不是追求某个固定数值,而是对比压缩前后同一页面的请求体积。
现代浏览器支持通过 HTML 属性提示加载优先级。安排时可以这样写:
<img src="hero.webp" alt="首屏主图" width="1200" height="600">
对于折叠线以下的图片,可以加上 loading="lazy",让浏览器接近可视区域时再加载。对于首屏主图,不要加懒加载,否则可能推迟显示。若页面有多个首屏图片,可对最重要的那张使用 fetchpriority="high",但不要给所有图片都加高优先级,否则等于没有优先级。
检查结果的方法:刷新页面后,在网络面板中查看首屏图片是否在早期请求中出现;滚动到页面下方时,再观察懒加载图片是否才开始请求。如果首屏图片被延迟,说明懒加载用错了位置。
样式表会阻塞渲染。首屏需要的 CSS 应尽早加载;非首屏样式可以拆分或延后。脚本默认可能阻塞解析,除必要的主逻辑外,统计、客服、分享按钮等第三方脚本应使用异步或延迟方式。
字体方面,如果自定义字体文件较大,浏览器可能先显示空白或回退字体。时间和人手有限时,可以先使用系统字体,或只加载首屏需要的字重。判断方法是观察页面文字是否长时间不可见;如果出现明显空白,再考虑调整字体加载策略。
loading="lazy"。如果调整后首屏内容更早可见、布局不再明显跳动,说明安排基本合理。下一步可以继续检查移动网络下的表现,因为移动端带宽和延迟通常比桌面更紧张,优先处理移动端首屏资源往往更划算。