짧은 시간에 여러 번 호출되는 함수를 일정 시간 간격을 두고 한 번만 실행하게 만드는 함수.
ex) resize 이벤트때 실행되는 함수는 창 크기를 바꿀때 초당 수십~수백번 발생하기 때문에 부하 발생, debounce 함수를 통해 마지막 호출 이후 ~ms가 지나면 한 번만 실행하도록 조절
function debounce(func, wait) {
let timeout;
return function() {
clearTimeout(timeout); // 이전 타이머 취소
timeout = setTimeout(func, wait); // 새 타이머 시작
};
}
// 사용예시: resize 이벤트에 적용
$(window).on('resize', debounce(function() {
console.log('실행됨:', new Date().toLocaleTimeString());
}, 200));
실행결과 : 창 크기 드래그가 멈춘뒤 0.2초후 한번만 console 찍힘
728x90
'퍼블리싱 > HTML | CSS | Javascript' 카테고리의 다른 글
| intelliJ css 수정사항 실시간 반영 안될때 (0) | 2024.06.21 |
|---|---|
| webp와 png 동시에 사용하기 (1) | 2024.04.19 |
| 모바일에서 100vh 오류 해결방법 (0) | 2024.04.19 |
| 반응형 이미지 비율 유지하기 (0) | 2024.04.05 |
| 모바일에서 클릭시 연한 파란색 bg 없애기 (0) | 2024.04.04 |