Throttling

NOTE

Throttling은 일정 간격으로 함수 호출을 제한하는 기술입니다. 이벤트가 여러 번 발생해도 지정된 시간 간격마다 한 번만 함수를 실행하도록 하는 방식입니다. 예를 들어, 사용자가 스크롤을 할 때마다 스크롤 이벤트가 발생하지만, throttling을 사용하면 지정된 시간 간격마다 스크롤 이벤트에 대해 처리할 수 있게 됩니다.

  • 동작 원리: 이벤트가 연속적으로 발생하더라도, 일정한 시간 간격마다만 함수를 실행하도록 제한합니다.

  • 사용 예시:

    • 사용자가 페이지를 스크롤할 때마다 위치를 기록하거나 화면을 갱신할 때, 과도한 이벤트 처리를 막기 위해 사용

    • 윈도우 리사이징 시 성능 최적화를 위해 사용


function throttle(func, delay) {
    let lastTime = 0;
    return function(...args) {
        const now = new Date().getTime();
        if (now - lastTime >= delay) {
            func(...args);
            lastTime = now;
        }
    };
}
 
window.addEventListener('scroll', throttle(function() {
    console.log('스크롤 이벤트 처리');
}, 1000));