Picovert

图片懒加载:原生方式、Intersection Observer 和 LCP 陷阱

2026-04-227 分钟阅读

图片懒加载将图片的获取推迟到接近视口时。正确实现可将图片密集型页面的初始页面重量减少 40–70%。错误实现——最常见的是对 LCP 图片使用懒加载——会给最重要的性能指标增加 500+ ms。 以下是完整指南。

原生懒加载

最简单的实现是 loading="lazy" HTML 属性。浏览器支持率现已达 96%+。 不支持的浏览器简单地忽略该属性并立即加载——不需要 JavaScript 回退。

LCP 陷阱:永远不要懒加载 Hero 图片

最常见的懒加载错误是在页面第一个可见图片(通常是 LCP 候选的 Hero 或横幅图片)上添加 loading="lazy"。这会给 LCP 增加 300–600 ms。修复方法:不要给首屏图片加 懒加载,改用 fetchpriority="high"

懒加载与 WebP 结合

懒加载减少初始加载时需要获取的图片数量。将图片转换为 WebP 减少每次获取的大小。 在 Picovert 转换图片

Next.js 中的懒加载

Next.js 的 next/image 默认对所有图片应用 loading="lazy"。 对 LCP 图片添加 priority prop 以禁用懒加载。priority 会设置loading="eager"、添加预加载链接并设置 fetchpriority="high"

常见错误检查清单

  • 对首屏图片使用懒加载。
  • 懒加载图片缺少 width 和 height。
  • 将懒加载作为压缩的替代。 先压缩图片
  • 对立即可见的轮播图片使用懒加载。