WhatsApp网页版登录WhatsApp网页版登录

WhatsApp中文版

图片延迟加载实现原理_懒加载原理_提升用户体验的懒加载

为什么要使用懒加载

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

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

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

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

提升用户体验的懒加载_图片延迟加载实现原理_懒加载原理

懒加载实现原理

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

如何判断是否需要加载?

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

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

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

图片延迟加载实现原理_懒加载原理_提升用户体验的懒加载

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

代码实现




  
  
  
  Document
  


  
  
  
  
  
  
  
  
  
  
  
  
  


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




  
  
  
  Document
  


  
  
  
  
  
  
  
  
  
  
  
  
  


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

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

提升用户体验的懒加载_懒加载原理_图片延迟加载实现原理

相关文章