loading="lazy"是浏览器原生懒加载开关,chrome 76+、edge 88+、firefox 75+、safari 15.4+支持,需直接写在img标签上并配合src使用,仅对img和iframe生效,不支持css背景图或动态插入图片。

img标签的loading属性直接启用原生懒加载
现代浏览器(Chrome 76+、Edge 88+、Firefox 75+、Safari 15.4+)已原生支持 loading 属性,无需 JS 就能延迟加载离屏图片。它比手写 IntersectionObserver 更轻量,且由浏览器优化调度。
用法很简单:<img src="photo.jpg" loading="lazy" alt="...">。但要注意:
-
loading="lazy"仅对<img>和<iframe></iframe>生效,对 CSS 背景图或通过 JS 动态插入的图片无效 - 必须配合
src(不能只靠data-src),否则会触发 404 或空占位 - 在
<table> 内部或 <code>display: none容器中可能被忽略,部分旧版 Safari 会完全禁用该行为 - 首屏关键图建议显式设
loading="eager",避免因预加载策略误延迟 - 创建 observer 时设置
rootMargin提前触发,比如"200px"让图片在进入视口前 200px 就开始加载,避免滚动过快时白屏 - 每个目标元素只监听一次,回调中应立即调用
unobserve(),否则重复触发或内存泄漏 - 加载失败时需 fallback:把
data-src赋给src后,若img.naturalWidth === 0,说明加载失败,可显示占位符或错误提示 - 服务端渲染(SSR)场景下,首次 hydrate 前要检查元素是否已在视口内,否则可能跳过加载——可用
element.getBoundingClientRect().top 快速判断 - 即使浏览器支持 WebP,某些安卓 WebView(如微信内置浏览器 v8.0.32 以下)仍会静默失败,
<img src="a.webp">显示为空,也不抛错 - 推荐用
<picture></picture>回退:<picture><source srcset="a.avif" type="image/avif"><source srcset="a.webp" type="image/webp"> @@##@@ </source></source></picture>
- 不要在
data-src中混用格式后缀做条件加载——JS 无法预判用户设备支持哪些格式,应交由<picture></picture>由浏览器自主选择 - CDN 开启 WebP 自动转换时,确保响应头包含
Vary: Accept,否则中间缓存可能把 WebP 返回给不支持的客户端 - 组件挂载时注册
IntersectionObserver,但组件卸载前未disconnect(),导致 observer 持有已销毁 DOM 引用,报Failed to execute 'unobserve' on 'IntersectionObserver' - 使用
useEffect或onMounted注册 observer 时,依赖数组漏掉ref或callback,造成 observer 使用闭包中过期的 state - SSR + CSR 混合渲染时,服务端生成的
src可能是占位图,客户端 hydration 后又触发懒加载替换——若新图尺寸不同,会引发布局偏移(CLS)。解决办法是固定容器宽高,或用intrinsicsize属性(Chrome 122+) - 不要在
render函数里动态生成data-src并交给懒加载库处理,框架可能批量重绘多次,导致同一张图被多次加载
IntersectionObserver 手动控制复杂懒加载逻辑
当需要自定义阈值、触发动画、加载前校验网络状态,或处理非 <img> 元素(如卡片容器、视频、组件模块)时,IntersectionObserver 是更可控的选择。
典型实现要点:
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
懒加载与 WebP / AVIF 图片格式搭配的注意事项
用 loading="lazy" 或 IntersectionObserver 加载现代格式图片时,容易忽略解码兼容性问题。
关键事实:
React/Vue 中懒加载组件与图片的协同问题
框架内组件级懒加载(如 React 的 React.lazy 或 Vue 的异步组件)和图片懒加载不是一回事,混用时容易出现竞态。
常见陷阱:
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










