이미지 로딩은 웹 개발에서 일반적으로 수행되는 작업입니다. 그러나 이미지를 로딩하는 동안 웹 페이지가 멈추거나 느려지는 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 자바스크립트의 async/await
를 사용하여 비동기적으로 이미지를 로딩할 수 있습니다. 이번 게시물에서는 자바스크립트 async/await
를 사용하여 이미지를 로딩하는 방법을 알아보겠습니다.
1. 비동기 함수 선언
먼저, 이미지를 로딩하는 비동기 함수를 선언해야 합니다. 비동기 함수는 async
키워드로 선언되며, 내부에 await
키워드로 비동기 처리를 기다리는 코드를 작성할 수 있습니다. 이미지를 로딩하기 위해 fetch
함수를 사용할 수 있습니다.
async function loadImage(url) {
const response = await fetch(url);
const blob = await response.blob();
return URL.createObjectURL(blob);
}
위의 코드에서 loadImage
함수는 이미지 URL을 매개변수로 받아와 비동기적으로 해당 이미지를 로딩한 후 URL.createObjectURL
로 이미지를 반환합니다.
2. 이미지 로딩
이제 비동기 함수를 사용하여 이미지를 로딩해보겠습니다.
async function displayImage() {
try {
const imageUrl = '<이미지 URL>';
const imageElement = document.createElement('img');
imageElement.src = await loadImage(imageUrl);
document.body.appendChild(imageElement);
} catch (error) {
console.error(error);
}
}
displayImage();
위의 코드에서 displayImage
함수는 비동기적으로 이미지를 로딩하여 새로운 img
엘리먼트를 생성하고, 해당 이미지를 문서의 body
에 추가합니다. loadImage
함수 호출은 await
키워드로 비동기 처리를 기다리며, 이미지가 로딩되면 imageElement.src
에 할당합니다.
try-catch
문을 사용하여 예외 처리를 수행하고, 에러가 발생하면 콘솔에 에러를 출력합니다.
3. 실행
위의 예제 코드에서 displayImage
함수를 호출하여 이미지를 로딩할 수 있습니다. <이미지 URL>
부분에 실제 이미지 URL을 입력하고 실행해보세요.
이제 자바스크립트 async/await
를 사용하여 이미지를 비동기적으로 로딩하는 방법을 알게되었습니다. 이를 활용하여 웹 페이지의 성능과 사용자 경험을 개선할 수 있습니다.