이미지 로딩 딜레이를 처리하는 자바스크립트 Lazy Loading 방법

이미지 로딩 딜레이는 웹 페이지의 성능을 저하시킬 수 있는 주요 문제 중 하나입니다. 특히, 많은 수의 이미지가 포함된 웹 페이지에서는 사용자 경험을 저하시킬 수 있습니다. 이를 해결하기 위해 자바스크립트의 Lazy Loading 기법을 사용할 수 있습니다. Lazy Loading은 웹 페이지가 스크롤될 때 이미지를 동적으로 로드하는 방식입니다.

Lazy Loading을 위한 자바스크립트 라이브러리

이미지 로딩을 위한 자바스크립트 라이브러리 중에서는 몇 가지 인기있는 옵션들이 있습니다. 다음은 그 중에서도 가장 많이 사용되는 두 가지 라이브러리입니다.

1. LazyLoad.js

LazyLoad.js는 가벼운 크기와 간단한 구현 방식으로 인기를 얻고 있는 라이브러리입니다. 다음과 같이 HTML에서 LazyLoad.js를 불러옵니다.

<script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.2.2/lazysizes.min.js"></script>

이미지에 lazyload 클래스를 추가하고 data-src 속성에 이미지의 URL을 지정하면 LazyLoad.js가 자동으로 이미지를 로드합니다.

<img class="lazyload" data-src="image.jpg" alt="Lazy Loaded Image">

2. Intersection Observer API

Intersection Observer API는 최신 웹 브라우저에서 지원하는 기능으로, 스크롤 이벤트를 사용하지 않고도 요소의 가시성을 감지하는 데 사용됩니다. 다음은 Intersection Observer API를 사용하는 예시입니다.

const images = document.querySelectorAll('img');

const options = {
  rootMargin: '0px',
  threshold: 0.5
};

const handleIntersection = (entries, observer) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      entry.target.src = entry.target.dataset.src;
      observer.unobserve(entry.target);
    }
  });
};

const observer = new IntersectionObserver(handleIntersection, options);

images.forEach(image => {
  observer.observe(image);
});

위의 코드는 img 태그의 data-src 속성에 이미지의 URL을 지정하고, 해당 이미지가 스크롤되면 실제 이미지로 변경하는 동작을 구현한 것입니다.

결론

이미지 로딩 딜레이를 처리하는 자바스크립트 Lazy Loading 기법을 사용하면 웹 페이지의 성능을 향상시킬 수 있습니다. LazyLoad.js나 Intersection Observer API를 사용하여 이미지를 동적으로 로드하는 방법을 적용해보세요.

#webdevelopment #lazyloading