본문 바로가기
Rx

Debounce , Throttle

by 봄석 2019. 9. 10.

Debounce , Throttle 

 

Debonce와  Throttle 은 무슨차이가 있을까요 ? 

먼저 Debounce 와 Throttle을 각각 알아보도록 하겠습니다.

 

 

Debounce

http://reactivex.io/documentation/operators/debounce.html

debounce 는 이벤트를 그룹화하여 특정시간이 지난 후 마지막 이벤트만을 발생하도록 하는 기술입니다.

위의 마블다이어그램의 상황을 테스트코드로 작성해 보았습니다.

 

debounce 측정시간을 300ms로 잡고

[red] (--300ms-- {red발행} -- 50ms경과--)  [yellow](--100ms--) [green] (--200ms--{green발행} -- 150ms--)

[blue](--300ms -- {blue발행} -- 50ms)  end

 

이 되게 됩니다.

 

 

 

 

 

Throttle

 

이벤트를 일정한 주기마다 발생하도록 하는 기술입니다.

throttle first는 일정한 시간동안 맨 처음 발생한 이밴트만 발행합니다.

 

위 마블다이어그램을 테스트 코드로 작성해 보았습니다.

 

throttle시간을 300ms로 잡고

[red] {red발행} (--300ms--)  [yellow]{yellow 발행}(--150ms--) [green](--150ms--) [sky] {sky발행}(--150ms--) [deep_sky](--150ms--) [pink]{pink발행}(--100ms--) 

 

 

 

 

 

Debounce 와 Throttle 의 차이

Debounce는 아무리 많은 이벤트가 발생해도 모두 무시하고 특정 시간사이에

어떤 이벤트도 발생하지 않았을 때 딱 한번만 마지막 이벤트를 발생시키는 기법이고

 

Throttle은  특정 시간이 지나면 이벤트가 무조건 발생하는 기법이다.

 

 

댓글