자바스크립트에 이런 함수가 있었네요. > 자유게시판

자유게시판

자바스크립트에 이런 함수가 있었네요. 정보

자바스크립트에 이런 함수가 있었네요.

본문

 

알림기능이있고 1초간 100번의 알림이 순간적으로 발생했을때  100번의 알림을 순차적으로 알려왔는데

 

디비운싱 이라는 함수를 사용하면 

100번발생시 지정한 시간안에 발생한 이벤트의 마지막 이벤트만 실행시키는 아주 싱통방통한 함수네요.

이거때문에 각각의 호출을 저장해서비교해야하나 엄청고민했는데 한방에 해결하고 기분이너무 좋아서 글까지 쓰네요 ㅎㅎ

 

function debounce(func, wait, immediate) {
    var timeout;
    return function() {
        var context = this, args = arguments;
        clearTimeout(timeout);
        timeout = setTimeout(function() {
            timeout = null;
            if (!immediate) func.apply(context, args);
        }, wait);
        if (immediate && !timeout) func.apply(context, args);
    };
}

 

var voice = debounce(function(str) {
    //실행할 명령
}, 4000);

 

 

추천
3
  • 복사

댓글 6개

https://lodash.com/docs/#debounce
저도 많이 쓰는 라이브러리 임니당.
예를 들면 검색어를 키보드 입력시마다 서버에 요청 보낼때 사용하면 요청 횟수를 조절하는 용도로 쓰이지요.

https://kr.vuejs.org/v2/guide/computed.html#%EA%B0%90%EC%8B%9C%EC%9E%90

vuejs와 결합해서 쓰는 사용예제입니당^^
© SIRSOFT
현재 페이지 제일 처음으로