iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JavaScript实用的图片懒加载优化方法有哪些
  • 948
分享到

JavaScript实用的图片懒加载优化方法有哪些

2023-06-29 16:06:26 948人浏览 八月长安
摘要

这篇文章主要介绍了javascript实用的图片懒加载优化方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、方法一重点:1.getBoundinGClientRec

这篇文章主要介绍了javascript实用的图片懒加载优化方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、方法一

JavaScript实用的图片懒加载优化方法有哪些

重点:

  • 1.getBoundinGClientRect().top > window.innerHeight 图片未出现

  • 2.getBoundingClientRect().top < window.innerHeight 图片出现了

HTML:

<ul>    ......    <li>2222222222</li>    <li>2222222222</li>    <li>2222222222</li>    <li>2222222222</li>    <li>2222222222</li>    <li>2222222222</li>        <img data-src="./img1.jpg" height="200px"><br>    <img data-src="./img2.jpg" height="200px" alt=""><br>    <img data-src="./img3.jpg" height="200px" alt=""></ul>

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触发了");  //此方法:若加载很多内容,就会导致任务的堆积,影响整体效率})

JavaScript实用的图片懒加载优化方法有哪些

我们可以看到,虽然图片懒加载已经成功了,但是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回调函数,设置 目标图片出现时改变属性

JavaScript实用的图片懒加载优化方法有哪些

此时我们看到,当所有图片都懒加载完之后(observe取消观察DOM节点),scroll事件就不再触发*

感谢你能够认真阅读完这篇文章,希望小编分享的“JavaScript实用的图片懒加载优化方法有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: JavaScript实用的图片懒加载优化方法有哪些

本文链接: https://www.lsjlt.com/news/325817.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript实用的图片懒加载优化方法有哪些
    这篇文章主要介绍了JavaScript实用的图片懒加载优化方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、方法一重点:1.getBoundingClientRec...
    99+
    2023-06-29
  • JavaScript图片懒加载的优化方法详解
    目录一、方法一二、方法二 InterSectionObserver总结一、方法一 重点: 1.getBoundingClientRect().top > window.inn...
    99+
    2024-04-02
  • 详解JavaScript两个实用的图片懒加载优化方法
    目录一、方法一二、方法二 InterSectionObserver一、方法一 重点: 1.getBoundingClientRect().top > window.inner...
    99+
    2024-04-02
  • vue-router实现懒加载的方法有哪些
    本篇文章为大家展示了vue-router实现懒加载的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。未使用懒加载import Vue from 'vue...
    99+
    2023-06-06
  • web前端图片懒加载的原理与实现方式有哪些
    这篇文章主要讲解了“web前端图片懒加载的原理与实现方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web前端图片懒加载的原理与实现方式有哪些”吧!一. 图片懒加载的目的大型网站如常...
    99+
    2023-07-05
  • Web图片优化的方法有哪些
    这篇文章主要讲解了“Web图片优化的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Web图片优化的方法有哪些”吧!图像是web上提供的最基本的内容...
    99+
    2024-04-02
  • vps图片优化的方法有哪些
    对于VPS图片优化,可以采用以下方法:1. 图片压缩:使用图片压缩工具,如JPEGmini、TinyPNG等,可以将图片压缩到较小的...
    99+
    2023-09-08
    vps
  • vue-router实现路由懒加载的方法有哪些
    这篇文章给大家介绍vue-router实现路由懒加载的方法有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。什么是路由懒加载?也叫延迟加载,即在需要的时候进行加载,随用随载。官方解释: 1:当打包构建应用时...
    99+
    2023-06-06
  • android fragment懒加载的方式有哪些
    Android中Fragment的懒加载方式有以下几种:1. setUserVisibleHint():这是最常见的一种懒加载方式。...
    99+
    2023-08-12
    android fragment
  • Android Fresco图片加载优化的方案
    目录优化背景数据记录优化方案注意事项优化背景 一般情况下,Fresco图片加载需使用SimpleDraweeView,这个控件并不能自动根据自身的尺寸按需加载图片,即一个 N×N ...
    99+
    2024-04-02
  • vue3组合式api实现v-lazy图片懒加载的方法实例
    目录前置知识Intersection ObserverVue3指令周期image对象思路完整代码总结前置知识 Intersection Observer 浏览器提供api,用于检测目...
    99+
    2024-04-02
  • Android中有哪些常用的图片加载库
    Android中有哪些常用的图片加载库?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Universal Image Loader:ImageLoader是比较老的框架,一个强大...
    99+
    2023-05-31
    android 中有 roi
  • JavaScript性能优化的方法有哪些
    这篇文章主要讲解了“JavaScript性能优化的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript性能优化的方法有哪些”吧! ...
    99+
    2024-04-02
  • JavaScript的性能优化方法有哪些
    这篇文章主要讲解了“JavaScript的性能优化方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript的性能优化方法有哪些”吧!无论...
    99+
    2024-04-02
  • web网页图片优化的实用工具有哪些
    这篇文章主要介绍“web网页图片优化的实用工具有哪些”,在日常操作中,相信很多人在web网页图片优化的实用工具有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web网页图...
    99+
    2024-04-02
  • vue3 图片懒加载的两种方式、IntersectionObserver和useIntersectionObserver实例详解
    目录1、在src下创建helloworld.js 内容如下2、在main.js中导入并使用3、再app.vue中使用如下:1、在src下创建helloworld.js 内容如下 //...
    99+
    2023-03-19
    vue3 图片懒加载 vue3 IntersectionObserver和useIntersectionObserver vue图片懒加载
  • 动态加载JavaScript文件的方法有哪些
    本篇内容介绍了“动态加载JavaScript文件的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一种便是利用ajax方式,把sc...
    99+
    2023-07-04
  • 优化VUE应用的加载性能:VUE路由懒加载的最佳实践
    什么是VUE路由懒加载? VUE路由懒加载是一种将路由组件的加载延迟到需要时才进行加载的技术。这可以减少VUE应用的初始加载时间,并提高后续路由切换时的性能。 VUE路由懒加载的最佳实践 1. 仅对非关键的路由组件使用懒加载 并不是所有...
    99+
    2024-02-14
    VUE 路由 懒加载 性能优化
  • PHP-FPM性能优化实例:提高网站图片加载速度的方法
    摘要:在当今的互联网时代,图片在网站中占据了重要的地位,而快速加载图片对于提升用户体验至关重要。本文将通过对PHP-FPM性能优化的实例,介绍一些提高网站图片加载速度的方法,并提供具体的代码示例。使用图片压缩技术图片压缩是一种常见的提高网站...
    99+
    2023-10-21
    图片加载 性能优化 php-fpm
  • 实用的MySQL常用优化方法有哪些
    本篇内容主要讲解“实用的MySQL常用优化方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“实用的MySQL常用优化方法有哪些”吧!当MySQL单表记录数...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作