본문 바로가기
개발/Flutter

flutter debouncing - 재호출

by dev_caleb 2022. 4. 1.
728x90

https://zionh.tistory.com/155

 

[flutter] TextField 타이밍 : Debouncing

검색기능 등에서 텍스트가 바뀔때마다 통신을 하게 구현을 했을 때 현실과 이상의 괴리가 발생한다. 이상: 원하는 텍스트를 '모두' 입력했을 때, 그 텍스트에 대해서 검색을 시도한다. 현실: 텍

zionh.tistory.com

 

search를 할 때 단어를 칠 때마다 검색하게 되면 너무나 서버 낭비가 심하다. 

적절하게 시간 봐가면서 실행해주는 것이 바로 이 deboucing 이다. 

오늘은 이 debouncing을 간단하게 처리해주도록 코드를 정리해놓으신 블로그가 있어서 소개하고자 한다.

 

 

다른 library(Google map location picker - 구글에서 만든건지는 잘 모르겠음)에서 찾은 것은 text가 없을 때, cancel을 시켜주는 것이다. -> 좀 괜찮은 것 같다 ( 그것말고는 블로그 내용과 동일하다)

 

Timer debouncer;
void onSearchInputChange() {
  if (editController.text.isEmpty) {
    debouncer?.cancel();
    widget.onSearchInput(editController.text);
    return;
  }

  if (debouncer?.isActive ?? false) {
    debouncer.cancel();
  }

  debouncer = Timer(Duration(milliseconds: 500), () {
    widget.onSearchInput(editController.text);
  });
}

 

728x90