본문 바로가기

js

[js]디바운싱과 쓰로틀 debounce Throttle 쓰로틀링

참고 https://webclub.tistory.com/607

// 디바운스
function Event(){
	// 스크롤 이벤트 실행 함수 코드
}
  let timer;
$(window).scroll(function () {
  if(timer){
    clearTimeout(timer)
  }
  timer = setTimeout(()=>{
  Event()
  },500)
})
//쓰로틀
function Event(){
 실행될 함수 코드
}

let timer;
$(window).scroll(function(){
  if(!timer){
    timer = setTimeout(function(){
      timer = null; 
      Event()
    },1000)
  }
})

ex) 스크롤 이벤트 setTimeout 10초 설정

디바운싱

→ 모든 스크롤이 끝난 후 이벤트 발생

쓰로틀 

→ 스크롤 발생 시 setTimeout 10초 실행, 함수가 끝나기 전 스크롤이 발생해도 이벤트 발생X

 

*실행 이벤트 밖에 let timer 빼기

'js' 카테고리의 다른 글

[js]마우스 휠 감지  (0) 2022.08.08
[js]ajax 기초 공부  (0) 2022.07.21
[js]만 나이 구하기  (0) 2022.07.08
[js]input text 전체 입력 시 버튼 활성화  (0) 2022.07.06
[js]iframe 사용 시 부모 document접근하기(아이프레임)  (0) 2022.06.30

top