刷网页时,图片提前加载浪费流量、滚动时加载慢?懒加载技术能解决!这里对比 loading=lazy 和 lazyload 插件两种方案,教你按需选择。
一、它们是什么?
懒加载就是让图片在用户快看到时才加载,减少初始加载时间。
loading=lazy:浏览器原生属性,主流浏览器(Chrome≥76、Firefox≥68、Safari≥13)支持,但老版本浏览器不认。
lazyload 插件:第三方工具,如 lazysizes,能模拟懒加载,兼容所有浏览器。
二、怎么用?
1. loading=lazy
直接在 img 标签加属性:
<img src="your-image.jpg" alt="示例图片" loading="lazy">
2. lazyload 插件(以 lazysizes 为例)
引入文件并标记图片:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js"></script>
<img src="placeholder.jpg" data-src="your-image.jpg" alt="示例图片" class="lazyload">
三、优缺点对比
方案 | 优点 | 缺点 |
loading=lazy | ① 简单,直接加属性;② 性能开销小;③ 主流浏览器兼容 | ① 老旧浏览器不支持;② 功能单一,难自定义效果 |
lazyload 插件 | ① 全浏览器兼容;② 可自定义加载时机、动画;③ 扩展性强 | ① 增加页面体积;② 代码复杂,需按规则配置 |
四、怎么选?
时间紧、面向现代用户:选 loading=lazy。
需全兼容或复杂效果:用 lazyload 插件。
折中方案:用 loading=lazy 为主,针对不支持的浏览器引入轻量级插件:
<script>
if ('loading' in HTMLImageElement.prototype === false) {
var script = document.createElement('script');
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js';
document.body.appendChild(script);
}
</script>
<img src="your-image.jpg" alt="示例图片" loading="lazy" class="lazyload">
两种方案各有优劣,根据项目需求、用户群体和开发成本选择,就能实现高效图片加载!