← 返回首页
技术 2026年5月10日 · 1 分钟阅读 · 大可

图片懒加载:native lazy 与 IntersectionObserver

延迟加载首屏外图片,缩短首屏时间,附原生与 JS 两种方案。


B2 文章页图片多,全部首屏加载会拖慢速度。懒加载只加载可视区附近的图片。

原生方案(首选)

<img src="/a.jpg" loading="lazy" alt="说明文字">

现代浏览器原生支持 loading="lazy",零 JS、零依赖。再加 width/height 占位防布局抖动。

JS 方案(需精细控制时)

const io = new IntersectionObserver((entries) => {
  for (const e of entries) {
    if (e.isIntersecting) {
      e.target.src = e.target.dataset.src;
      io.unobserve(e.target);
    }
  }
});
document.querySelectorAll('img[data-src]').forEach((img) => io.observe(img));

原生够用就别上 JS,简单更可靠。记得每张图都写 alt,兼顾可访问性与 SEO。

#性能#图片#懒加载