프로그래밍/JavaScript
JS - 디바운싱
수박수박좋다
2021. 1. 11. 13:33
반응형
디바운싱
디바운싱에 대한 예제를 구현한다
디바운싱의 적용 예는 검색인데 사용자가 검색어를 입력할 때 검색창 밑에 연관검색어를 나열해준다.
이 때 이벤트는 각 글자당 계속 발생하기 때문에 서버에 요청도 같은 숫자로 계속 전해진다.
사과하나를 치는데 이벤트가 ㅅ ㅏ ㄱ ㅗ ㅏ , 총 5번이 일어나므로 한 두명이 아닌 수천명이면 고작 두글자에 몇만번이상의 요청을 보내게 된다.
그래서 연이어 호출되는 이벤트중 마지막 이벤트만 호출하도록 하는 것이 디바운싱이다.
$searchInput.addEventListener("keyup", (e) => {
if (this.timer) {
clearTimeout(this.timer);
}
this.timer = setTimeout(() => {
if (e.keyCode === 13) {
onSearch(e.target.value);
this.setState(e.target.value);
}
}, 200);
});
과제중 구현한 디바운싱 예제.
200ms 이 후 마지막 검색이벤트만 호출된다.
반응형