티스토리 뷰

프로그래밍/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 이 후 마지막 검색이벤트만 호출된다.

반응형

'프로그래밍 > JavaScript' 카테고리의 다른 글

실행컨텍스트  (3) 2021.08.21
호이스팅  (0) 2021.08.21
JS - 쓰로틀링  (0) 2021.01.11
JS - Lazyload(IntersectionObserve 로 구현)  (0) 2021.01.11
JS - LazyLoad (이벤트리스너로 구현)  (0) 2021.01.11
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
농담곰의 고군분투 개발기