懒加载:(1)图片进入可视区域之后请求资源,对于电商,页面很长的场景,减少无效的资源加载(单页应用,观看的时候才去加载),(2)并发加载的资源过多会影响网站的正常使用。
具体实现懒加载:图片的src的地址被改变的时候被加载。监听滑动的事件,当图片进入可视区域的时候才去加载。
window.onload = function (ev) { let viewheight = document.documentElement.clientWidth; function lazyload() { //实现懒加载 let allNode = document.querySelectorAll("img[lazyload][data-origin]"); //进行遍历 Array.from(allNode).forEach((item,index)=>{ let react; console.log(item.dataset) if(item.dataset.origin === "") { return ; } react = item.getBoundingClientRect(); if(react.bottom >=0 && react.top<viewheight){ //到达可视区域 //给图片提供地址 let img = new Image(); img.src = item.dataset.origin; img.onload = ()=>{ item.src = img.src; } item.removeAttribute("data-origin"); item.removeAttribute("lazyload"); } }) } lazyload();//上来先调用一下 //绑定事件 document.addEventListener("scroll",lazyload); }