>  기사  >  웹 프론트엔드  >  이미지를 지연 로딩하는 방법은 무엇입니까?

이미지를 지연 로딩하는 방법은 무엇입니까?

百草
百草원래의
2023-11-13 14:41:211025검색

이미지 지연 로딩 방법에는 Intersection Observer 기반 지연 로딩, 스크롤 이벤트 모니터링을 사용한 지연 로딩, setTimeout을 사용한 지연 로딩이 있습니다. 자세한 소개: 1. Intersection Observer 기반 지연 로딩 Intersection Observer는 브라우저에서 제공하는 API로, 요소가 사용자의 뷰포트에 들어오는지 여부를 모니터링할 수 있습니다. 2. 스크롤 이벤트 모니터링을 통해 판단되는 지연 로딩. 등.

이미지를 지연 로딩하는 방법은 무엇입니까?

이 튜토리얼의 운영 체제: Windows 10 시스템, DELL G3 컴퓨터.

이미지 지연 로딩은 페이지의 이미지 로딩을 지연하고 이미지가 사용자 뷰포트에 나타나려고 할 때만 로딩하여 웹 페이지 성능을 최적화하는 기술입니다. 이를 통해 페이지 로드 시간이 줄어들고 사용자 경험과 전반적인 웹사이트 성능이 향상됩니다. 이 기사에서는 이미지에 일반적으로 사용되는 몇 가지 지연 로딩 방법을 소개합니다.

1. Intersection Observer 기반 지연 로딩:

Intersection Observer는 요소가 사용자의 뷰포트에 들어오는지 여부를 모니터링할 수 있는 브라우저에서 제공하는 API입니다. Intersection Observer를 사용하면 이미지 요소가 표시되는지 여부를 모니터링하고 이미지가 뷰포트에 들어갈 때 해당 요소를 로드할 수 있습니다. 이 방법은 간단하고 사용하기 쉬울 뿐만 아니라 성능도 더 좋습니다.

다음은 Intersection Observer를 사용하여 이미지 지연 로딩을 구현하는 샘플 코드입니다.

// 创建一个Intersection Observer实例
const observer = new IntersectionObserver((entries, observer) => {
  entries.forEach((entry) => {
    if (entry.isIntersecting) {
      // 当图片进入视口时加载它
      entry.target.src = entry.target.dataset.src;
      observer.unobserve(entry.target);
    }
  });
});
// 获取所有需要懒加载的图片元素,并添加观察者
const lazyImages = document.querySelectorAll('.lazy');
lazyImages.forEach((lazyImage) => {
  observer.observe(lazyImage);
});

2. 스크롤 이벤트 모니터링을 사용한 지연 로딩:

이 방법은 스크롤 이벤트를 수신하여 이미지가 뷰포트에 진입하는지 확인하는 것입니다. . 사용자가 페이지를 스크롤할 때 각 이미지의 위치가 뷰포트에 있는지 확인하고, 그렇다면 이미지를 로드합니다.

다음은 스크롤 이벤트 수신을 사용하여 이미지 지연 로딩을 구현하는 샘플 코드입니다.

window.addEventListener('scroll', () => {
  const lazyImages = document.querySelectorAll('.lazy');
  lazyImages.forEach((lazyImage) => {
    if (lazyImage.getBoundingClientRect().top <= window.innerHeight && lazyImage.getBoundingClientRect().bottom >= 0) {
      lazyImage.src = lazyImage.dataset.src;
      lazyImage.classList.remove(&#39;lazy&#39;);
    }
  });
});

3. setTimeout을 사용한 지연 로딩:

지연 시간을 설정하여 이미지를 로드하는 방법입니다. 페이지가 로드되면 먼저 자리 표시자 이미지를 로드한 다음 setTimeout을 사용하여 실제 이미지 로드를 지연시켜 지연 로드 효과를 얻습니다.

다음은 setTimeout을 사용하여 이미지 지연 로딩을 구현하는 샘플 코드입니다.

window.addEventListener(&#39;load&#39;, () => {
  const lazyImages = document.querySelectorAll(&#39;.lazy&#39;);
  lazyImages.forEach((lazyImage) => {
    lazyImage.src = lazyImage.dataset.placeholder;
    setTimeout(() => {
      lazyImage.src = lazyImage.dataset.src;
      lazyImage.classList.remove(&#39;lazy&#39;);
    }, 1000); // 设置延迟时间,单位为毫秒
  });
});

요약:

이미지 지연 로딩은 웹 페이지 성능을 최적화하는 효과적인 방법으로, 페이지 로딩 시간을 줄이고 사용자 경험을 향상시킬 수 있습니다. 이 기사에서는 Intersection Observer 기반의 지연 로딩, 스크롤 이벤트 모니터링을 사용한 지연 로딩, setTimeout을 사용한 지연 로딩을 포함하여 이미지에 일반적으로 사용되는 몇 가지 지연 로딩 방법을 소개합니다. 개발자는 이미지 지연 로딩을 구현하기 위한 실제 요구 사항에 따라 자신에게 적합한 방법을 선택할 수 있습니다.

위 내용은 이미지를 지연 로딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.