Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 플러그인
- package.json
- 단어단위로떨어지기
- XEIcon
- node설치
- 의존성문제
- 이미지반응형
- slickslider
- 동적객체
- npm install 문제
- 정적객체
- MediaQuery
- 웹아이콘
- react npm install
- Git clone
- 아이콘사용법
- npm install
- owlcarousel
- maxwidth
- node 오류
- npm start
- 글자들여쓰기
- window 정책변경
- minwidth
- 그누보드반응형
- googleicon
- git lab clone
- legacy-peer
- vscode git clone
- fontawesome
Archives
- Today
- Total
어쩌다 알게 된 ƪ(•̃͡•̃͡ ƪ
⚪️ [JS] setInterval, setTimeout이랑 비슷한 Throttle, Debounce 본문
728x90
setInterval(function() {
if (didScroll) {
hasScrolled();
didScroll = false;
}
}, 250);
=> 0.25초 마다 반복해서 검사
=> didScroll이 true면 hasScrolled() 함수 실행하고 didScroll 을 false로 초기화 시켜라
비슷한걸 챗지피티가 알려줘서 기록용으로 써두기
나는 일단 처음 들어봄!
Throttle(쓰로틀) vs Debounce(디바운스)
=> setTimeout이나 setIntervla 처럼 js 기본 문법은 아니고 js로 구현가능한 개념
=> Lodash 같은 라이브러리로도 사용 가능
| 개념 | 설명 | 예시 상황 |
| Throttle | 일정 시간 간격으로만 함수 실행 (중간에 아무리 이벤트가 많이 발생해도 무시) => "계속 와도 내가 알아서 간격 두고 실행할게" |
스크롤 이벤트, 윈도우 리사이즈 등 |
| Debounce | 마지막 이벤트가 발생하고 일정 시간 지났을 때 함수 실행 => "너 그만하고 좀 멈추면 그때 실행할게" |
검색창 자동완성, input 입력 이벤트 등 |
Throttle 예시
let throttleTimer;
window.addEventListener('scroll', () => {
if (!throttleTimer) {
throttleTimer = setTimeout(() => {
console.log('스크롤 중 실행!');
throttleTimer = null;
}, 200);
}
});
=> 0.2초 뒤에 한 번만 실행
=> 그 사이 스크롤 계속해도 무시
=> setIntercal과 구조가 비슷함
=> ex) 스크롤, 리사이즈
Debounce 예시
let debounceTimer;
document.querySelector('input').addEventListener('input', () => {
clearTimeout(debounceTimer);
debounceTimer = setTimeout(() => {
console.log('입력 끝났을 때 실행!');
}, 500);
});
=> input 입력 끝난 후 0.5초 후에 실행
=> 입력 도중엔 실행 안 함
=> ex) 검색창 자동완성
728x90
'자바스크립트 > ⚪️ Vanilla' 카테고리의 다른 글
| [JS] response, response.data 비동기 함수 응답 처리, axio.get().then((response) => {}); (0) | 2025.04.11 |
|---|---|
| ⚪️ [JS] JSON.stringify() (0) | 2025.03.25 |
| ⚪️ [JS] 디버깅시 console 사용 꿀팁 (0) | 2025.03.21 |
| ⚪️ [JS] console.log에서 + 와 , 타입 변환 알아보기 (0) | 2025.03.21 |
| ⚪️ [ JS ] 함수, 메서드, 생성자 차이 (0) | 2025.03.10 |
Comments