博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小哥哥要了解一下图片懒加载吗?
阅读量:6911 次
发布时间:2019-06-27

本文共 996 字,大约阅读时间需要 3 分钟。

为什么要使用懒加载

懒加载也叫延迟加载指的是当需要用到该资源的时候才对其进行加载,是一种提升网页性能的方式。

懒加载可以提升用户体验,比如在我们浏览一个有大量图片的网页的时候如果一次性加载完所有的图片就会等待很长的时间,影响用户的体验,这样可能就会流失一部分客户,所以为了解决这个问题就引入了图片懒加载,当用户进入场景的时候先加载第一屏的图片(也可以再多一点),然后当用户向下滚动的时候再加载后面对应的一页中的图片,这样,如果用户看了几页不想看了,后边的图片就不用加载了,减轻了服务器的压力。相应的首屏展示也更快了。

从中可以看出懒加载的优点:

  • 缩短首屏加载时间,提升用户体验。
  • 减轻服务器压力,更具用户需求加载,不用全部加载

懒加载应用十分广泛,比如淘宝只会加载第一屏的图片,如果用户需要浏览后面的图片再进行加载。当你快速把滚动条拖到最后你会发现图片并没有加载完成。

懒加载实现原理

懒加载的基本思路就是不给imgsrc属性,把图片地址写在data-src中,当需要加载该图片时再把data-src中的值写到src中。

如何判断是否需要加载?

判断图片顶部距离页面顶部的距离是否小于页面的高度,即当图片进入可视区域的时候就加载该图片

获取图片距离页面顶部距离

使用API接口:el.getBoundingClientRect(),它会返回一个DOMRect对象,DOMRect 对象包含了一组用于描述边框的只读属性——lefttoprightbottom,单位为像素。除了 widthheight 外的属性都是相对于视口的左上角位置而言的。

这样我们就可以通过DOMRect对象的top属性来获取图片距离页面顶部距离。

代码实现

  
Document 复制代码

这样就实现了一个简单的懒加载,但是我们发现在滚动滚动条的时候只要图片进入可视区域就立即加载了,我们希望可以在我们停止滚动一段时间后才加载,所以这里我们需要防抖函数来控制。

  
Document 复制代码

上面我们还添加了一点动画,让图片出现的不那么突兀。

到这里就全部讲完啦,写文章不容易希望各位小哥哥、小姐姐、大佬们点个赞吧。

转载地址:http://plbcl.baihongyu.com/

你可能感兴趣的文章
删除数据库中重复项
查看>>
2.2-shell数组
查看>>
extjs 手风琴布局样式修改
查看>>
fragment新特性
查看>>
三星 A8开发板 杂记
查看>>
linux如何开启telnet服务
查看>>
实战:XtraBackup for mysql 5.6自动还原脚本
查看>>
CentOS https 客户端证书制作
查看>>
hardware information
查看>>
针对云安全从业者的指南系列一:云安全实施企业面临的背景
查看>>
我的友情链接
查看>>
OpenLDAP 客户端部署
查看>>
恢复误删除的ESXi服务器存储VMFS卷
查看>>
Java设计模式01-代理模式
查看>>
用户管理,权限管理
查看>>
C++11 委派构造函数特性怎么使用?
查看>>
saltstck源码安装mysql
查看>>
Linux下安装LoadRunner Agent
查看>>
haproxy+pacemeker
查看>>
db2死锁和锁超时
查看>>