淘先锋技术网

首页 1 2 3 4 5 6 7

在前端开发中,延迟加载(Lazy Loading)是一种提高页面性能的有效方法之一。它的原理是通过控制图片、视频等资源的加载时机,来减少初次加载页面时需要下载的数据量,从而提升页面的加载速度。


// 传统做法,所有图片在页面打开时一次性加载
<img src="img/big-picture.jpg">
<img src="img/small-picture1.jpg">
<img src="img/small-picture2.jpg">
<img src="img/small-picture3.jpg">

// 延迟加载,在滚动到特定位置时再加载图片
<img src="img/placeholder.jpg" data-src="img/big-picture.jpg">
<img src="img/placeholder.jpg" data-src="img/small-picture1.jpg">
<img src="img/placeholder.jpg" data-src="img/small-picture2.jpg">
<img src="img/placeholder.jpg" data-src="img/small-picture3.jpg">

window.addEventListener('scroll', function() {
  const images = document.querySelectorAll('img[data-src]');
  if (!images.length) return;
  
  images.forEach(img => {
    if (img.offsetTop < window.innerHeight + window.scrollY) {
      img.setAttribute('src', img.getAttribute('data-src'));
      img.removeAttribute('data-src');
    }
  });
});

延迟加载html代码

在上面的例子中,使用了一个带有data-src属性的占位图片,当滚动到图片位置时,才会把data-src的值赋给src属性,从而加载图片。这样可以减少网页在加载时的数据量,并且能够提升页面的加载速度。

除了懒加载图片,延迟加载还可以应用在其他需要耗时的操作上,比如异步加载页面元素、表格数据等。但需要注意的是,如果使用不当,延迟加载会产生一些意想不到的问题,比如会降低用户体验、增加JavaScript的复杂度等。