티스토리 뷰
반응형
쓰로틀링
쓰로틀링에 대해 예제를 구현한다.
쓰로틀링과 디바운싱기법이 있는데 사용하는 이유는 이벤트가 중복되서 호출되지 않도록 함이다.
쓰로틀링은 주로 스크롤 이벤트에서 적용되는데, 스크롤도 스크롤 내리면 딱 한번 이벤트가 들어가는 것이 아니라 수십 수천번까지 이벤트가 발생한다.
마지막 호출 이후에 특정 시간동안 다음 이벤트가 호출되지 않도록 하는 것이 쓰로틀링이다.
예제
var timer;
document.querySelector('#input').addEventListener('input', function (e) {
if (!timer) {
timer = setTimeout(function() {
timer = null;
console.log('여기에 ajax 요청', e.target.value);
}, 200);
}
});
입력이 발생할 때마다 이벤트가 수행되는데 if를 걸어서 200ms마다 수행되도록 적용한 예제이다.
첫 이벤트 발생시 setTimeout
이 200ms 후에 실행되므로 200ms안에 수행되는 이벤트들은 if안에 들어오지 못한다.
200ms가 지난 후에 timer가 Null이 되어 그 뒤의 작업을 수행하도록 한다.
한마디로 200ms(특정시간)마다 이벤트 수행을 하도록 한 것이 쓰로틀링이다.
반응형
'프로그래밍 > JavaScript' 카테고리의 다른 글
호이스팅 (0) | 2021.08.21 |
---|---|
JS - 디바운싱 (0) | 2021.01.11 |
JS - Lazyload(IntersectionObserve 로 구현) (0) | 2021.01.11 |
JS - LazyLoad (이벤트리스너로 구현) (0) | 2021.01.11 |
JS - 슬라이더(아래로) (0) | 2021.01.11 |
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
농담곰의 고군분투 개발기