如何原生JS实现图片懒加载之页面性能优化

  介绍

这篇文章主要介绍如何原生JS实现图片懒加载之页面性能优化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

在项目开发中,我们往往会遇到一个页面需要加载很多图片的情况。我们可以一次性加载全部的图片,但是考虑到用户有可能只浏览部分图片,所以我们需要对图片加载进行优化,只加载浏览器窗口内的图片,当用户滚动时,再加载更多的图片。这种加载图片的方式叫做图片懒加载,又叫做按需加载或图片的延时加载。这样做的好处是:1。可以加快页面首屏渲染的速度;2。节约用户的流量。

<强>一。实现思路

1。图片img标签自定义一个属性data-src来存放真实的地址。

2。当滚动页面时,检查所有的img标签,判断是否出现在事业中,如果出现在视野中,继续进行判断,看齐是否被加载过了,如果没有加载,那就进行加载。

判断图片元素是否处于浏览器视野中的示意图(手绘):

如何原生JS实现图片懒加载之页面性能优化

<强>二。根据思路完成代码如下:

& lt; ! DOCTYPE  html>   & lt; html  lang=癳n"祝辞   & lt; head>   ,& lt; meta  charset=癠TF-8"比;   ,& lt; title>原生js实现图片懒加载& lt;/title>   ,& lt; style>   ,* {   保证金才能:0;   ,,填充:0;   ,,box-sizing: border-box;   ,}   ,ul {   ,,溢出:隐藏。   list-style才能:没有;   ,}   李,{   浮:,才能离开;   ,,宽度:50%;   ,,身高:200 px;   ,,填充:10 px;   ,}   img, li  {   ,,显示:inline-block;   ,,宽度:100%;   ,,身高:100%;   ,}   ,& lt;/style>   & lt;/head>   & lt; body>   & lt; div 类=癱ontainer"祝辞   ,& lt; ul>   ,& lt; li> & lt; https://www.yisu.com/zixun/img  src=" http://cdn.jirengu.com/book.jirengu.com/img/1.jpg " data-src=" http://cdn.jirengu.com/book.jirengu.com/img/1.jpg ">   <李>   <李>   <李>   <李>   <李>   <李>   <李>   <李>   <李>   <李>   <李>   <李>   <李>   <李>   <李>      
  <>脚本//窗口绑定滚动事件   window.addEventListener(“滚动”,函数(){//遍历所有的img标签   .forEach Array.prototype.slice.apply (document.getElementsByTagName(李))((李)=> {   让img=li.getElementsByTagName (img) [0];//判断当前img是否出现在了视野中//判断当前img是否被加载过了   如果(checkShow (img) & & ! isLoaded (img)) {   loadImg (img);   }   })   });//判断img是否出现浏览器视野中   函数checkShow (img) {   让scrollTop=document.documentElement.scrollTop;//页面向上滚动的高度   让windowHeight=window.innerHeight;//浏览器自身高度   让offsetTop=img.offsetTop;//目标标签相对于文档的高度   返回(offsetTop> scrollTop & & offsetTop <(windowHeight + scrollTop));   }//判断是否已经加载过   函数isLoaded (img) {   返回img.getAttribute (src)===img.getAttribute (“data-src”);   }//加载图片   函数loadImg (img) {   img.setAttribute (“src”img.getAttribute (' data-src '));   }> 如何原生JS实现图片懒加载之页面性能优化