JavaScript实用的图片懒加载优化方法有哪些
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍了JavaScript实用的图片懒加载优化方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、方法一重点:1.
千家信息网最后更新 2025年11月08日JavaScript实用的图片懒加载优化方法有哪些
这篇文章主要介绍了JavaScript实用的图片懒加载优化方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
一、方法一
重点:
1.getBoundingClientRect().top > window.innerHeight 图片未出现2.getBoundingClientRect().top < window.innerHeight 图片出现了
HTML:
- ......
- 2222222222
- 2222222222
- 2222222222
- 2222222222
- 2222222222
- 2222222222 /*先用data-自定义标签,使图片先不加载*/



_JavaScript:
let img = document.querySelectorAll('img')window.addEventListener('scroll',() => { img.forEach((item) => { //若图片顶部高度小于视窗高度 if(item.getBoundingClientRect().top < window.innerHeight) { const data_src = item.getAttribute('data-src') //则将自定义属性data-src赋值给src属性 item.setAttribute("src",data_src) } }) console.log("scroll触发了"); //此方法:若加载很多内容,就会导致任务的堆积,影响整体效率})
我们可以看到,虽然图片懒加载已经成功了,但是scroll事件仍在不断触发,非常消耗资源,因此目前最推荐使用的方法还是IntersectionObserver
二、方法二 InterSectionObserver
重点:
1.observer.observe(DOM节点) 观察哪个DOM节点2.observer.unobserve(DOM节点) 取消观察某DOM节点3.callback目标能看见触发一次;目标元素看不见了又触发一次
HTML如上
_JavaScript:
let img = document.querySelectorAll('img')//此回调:目标能看见触发一次;目标元素看不见了又触发一次const callback = (entries) => { //接收一个数组作为参数,数组每一项都和目标元素相关,比如 isIntersecting判断目标元素是否被观察到了,又比如target属性代表该目标元素 entries.forEach((item) => { //若该目标元素被观察到了 if(item.isIntersecting) { const img = item.target //目标元素 const data_src = img.getAttribute('data-src') img.setAttribute('src',data_src) observer.unobserve(img) //observer.unobserve(DOM节点) 取消观察某DOM节点 } console.log('触发'); })}const observer = new IntersectionObserver(callback)//遍历所有img,使得所有img被观察img.forEach((item) => { observer.observe(item) //observer.observe(DOM节点) 观察哪个DOM节点})思路:
new一个观察实例,并通过观察实例身上的observe属性观察每一个图片。定义callback回调函数,设置 目标图片出现时改变属性
此时我们看到,当所有图片都懒加载完之后(observe取消观察DOM节点),scroll事件就不再触发*
感谢你能够认真阅读完这篇文章,希望小编分享的"JavaScript实用的图片懒加载优化方法有哪些"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
观察
图片
目标
节点
元素
方法
属性
篇文章
实用
事件
实例
数组
重点
高度
成功
不断
代表
价值
任务
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
达梦数据库型号
上海施恩软件开发
原神为什么经常重新连接服务器
支付和退款数据库表设计
店帮网络技术有限公司
小学生我与网络安全征文
服务器主板3核心
重庆服务器迁移选哪家虚拟主机
网络安全小常识宣传两页
简历数据库尽快回复通知
百胜网络技术有限公司地址
国内外组态软件开发现状
国网网络安全活动总结
网络安全问题主要源于
写程序要用到服务器吗
全市网络安全座谈
云需要服务器吗
学生网络安全教育海报绘画
芜湖新悦网络技术有限公司
网络安全责任定义谁接入
阅读网络技术与实践
思科网络技术it基础答案
软件开发无工作经验如何面试
数据库中存储数据的列
医疗器械网络安全的法规要求
疫情网络技术工作周报
数据库技术在会计中的应用
wow+美服数据库
保证人们网络安全英文
万秀区网络安全培训班