🛠️ 처음부터 만드는 Throttle — 이벤트를 일정 시간 간격으로 제한하기
Throttle이란?
Throttle은 함수를 일정 시간 간격으로만 실행하도록 제한합니다. 마치 수도꼭지를 조절해 물이 일정 속도로만 나오게 하는 것처럼요.
Debounce와 헷갈리기 쉽지만, 차이는 명확합니다:
구현
```javascript
function throttle(func, limit) {
let inThrottle;
return function(...args) {
if (!inThrottle) {
func.apply(this, args);
inThrottle = true;
setTimeout(() => (inThrottle = false), limit);
}
};
}
```
실제 사용
```javascript
const handleScroll = throttle(() => {
console.log('스크롤 위치:', window.scrollY);
}, 1000);
window.addEventListener('scroll', handleScroll);
```
사용자가 스크롤할 때 최대 1초마다 한 번만 실행됩니다.
타이밍 비교
```
사용자 클릭: ↓ ↓ ↓ ↓ ↓ ↓ ↓
Debounce: 결과: ------↓ (끝난 후)
Throttle: 결과: ↓---↓---↓ (일정 간격)
```
언제 쓸까?
Debounce는 사용자가 입력을 멈출 때 기다리고, Throttle은 계속 응답하되 간격을 조절합니다.
👁 0 views
Comments (0)
💬
No comments yet.
Be the first to comment!