갬쿠
개미 개발
갬쿠
전체 방문자
오늘
어제
  • ALL (137)
    • React (20)
    • JS & CSS & HTML (29)
    • Algorithm (62)
    • 웹 보안 (11)
    • 달리는 까까: 쿠키런 팬게임 (10)
    • Python (0)
    • 기타 (5)
    • 비공개 플젝 (0)

블로그 메뉴

  • GitHub
  • 방명록
  • 관리자 메뉴

공지사항

인기 글

태그

  • SQL Injection
  • 쿠키런
  • 크롬 공룡 게임
  • 쿠키런 팬게임
  • useEffect
  • useState
  • 달리는 까까
  • CSS
  • useReducer
  • Programmers
  • BEAKJOON
  • 게임
  • 게임 개발
  • 객체
  • Best of the Best
  • 백준
  • 리액트
  • node.js
  • transform
  • 쿠키런 모작
  • js
  • JavaScript
  • HTML
  • Baekjoon
  • 크롬 공룡게임
  • Object
  • REACT
  • EventListener
  • 모의 해킹
  • Python

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갬쿠

개미 개발

JS & CSS & HTML

JS Image preloading

2022. 5. 31. 17:32

웹 페이지를 변경하거나 다른 페이지로 이동할 경우 이미지가 많거나 크기가 커서 시간이 오래 걸릴 때 사용하는 방법이다. 사용자의 요청이 들어오기 전에 이미지를 미리 로드해 캐시로 이미지를 바로 가져오는 방식이다.

const preLoadImgSrc = [
    "./lib/img1.png",
    "./lib/img2.png",
    "./lib/img3.png"
];

const preLoadImg = (images) => {
    images.forEach((image) => {
        const img = new Image();
        img.src = image;
    });
};

preLoadImg(preLoadImgSrc);

이미지 사전 로드를 사용하면 이미지를 순차적으로 다운하는 것이 아니라 병렬적으로 다운하기 때문에 전체 이미지 로딩 시간이 줄어들게 된다. 그러나 이미지 하나하나의 다운 시간은 늘어나기 때문에 다른 이미지들보다 빠르게 로딩되어야 하는, 즉 우선순위가 높은 이미지가 있다면 사전 로드 방식이 적합하지 않을 수 있다.

이런 경우에는 image.onload를 이용해 원하는 이미지들을 순차적으로 다운할 수 있다.

const preLoadImgSrc = [
    "./lib/img1.png",
    "./lib/img2.png",
    "./lib/img3.png"
];

const preLoadImg = (images, index) => {
    index = index || 0;
    if (images && images.length > index) {
        const img = new Image();
        img.onload = () => {
            preload(images, index + 1);
        }
        img.src = images[index];
    }
}

preLoadImg(preLoadImgSrc);
728x90

'JS & CSS & HTML' 카테고리의 다른 글

contentEditable로 수정 기능 구현하기  (0) 2023.07.17
JS sort (문자열 배열 정렬 & 숫자 배열 정렬)  (0) 2022.06.26
CSS transform: translate vs. absolute positioning  (0) 2022.05.31
CSS line-height  (0) 2022.05.03
Font Awesome : HTML에 아이콘 삽입  (0) 2022.04.20
    'JS & CSS & HTML' 카테고리의 다른 글
    • contentEditable로 수정 기능 구현하기
    • JS sort (문자열 배열 정렬 & 숫자 배열 정렬)
    • CSS transform: translate vs. absolute positioning
    • CSS line-height
    갬쿠
    갬쿠
    보안&소프트웨어 전공 프론트엔드 개발자

    티스토리툴바