图片/视频延迟加载(lazyload)
最后更新: 浏览次数: 361
延迟加载又称为惰性加载,能极大缩短页面加载时间,提升用户体验,关于延迟加载特性以及对Google Page speed的相关知识,请参考以下第三方权威链接,不再做详细解释
Google web.dev:https://web.dev/i18n/zh/lazy-loading-images/
mdn web doc lazyload:https://developer.mozilla.org/zh-CN/docs/Web/Performance/Lazy_loading
一.浏览器级延迟加载
可通过html默认的loading属性实现图像的延迟加载,例如:
<img src="image.jpg" loading="lazy"/>
目前主流浏览器均可完美支持以上形式,如果浏览不支持loading属性(如Internet Exploer 11),则会忽略该属性采用直接加载形式不会产生兼容性问题,但loading属性不支持延迟加载背景图片/视频,以及部分浏览器下的iframe内容加载。
二.Intersection Observer方式延迟加载
为解决loading属性带来的部分缺陷问题,系统核心文件shared-v(x).min.js已默认集成 vanilla-lazyload 组件,可直接查看官方说明文档或参考以下使用方法
2.1 图片延迟加载
<img alt="A lazy image" class="lazy" data-src="lazy.jpg" />
2.2 背景延迟加载
<div class="lazy" data-bg="lazy.jpg"></div>
2.3 视频延迟加载
<video class="lazy" controls width="620" data-src="lazy.mp4" data-poster="lazy.jpg"> <source type="video/mp4" data-src="lazy.mp4" /> </video>
三.注意事项与建议
1.首屏视口内默认可见的图片或视频不推荐采用任何延迟加载方式(会引发LCP问题)
2.直接图片加载建议采用loading="lazy"属性方式
2.非直接图片(如背景图,视频,视频封面)资源建议采用Intersection Observer方式加载