🐶 debounce란
더보기
여러 이벤트가 발생할 때 이 이벤트를 일정 그룹으로 묶어서 하나로 처리하는 것.
주로 실시간 검색에서 사용되는데 우리가 네이버와 같은 검색 엔진에서 검색 할때 밑에 관련 검색어가 나타난다!
이때 하나의 타이핑 입력할 때마다 서버에 요청하게 되면 그만큼 서버에 부하를 주기 때문에 이를 타이핑이 입력되고 0.7초 0.5초 이런식으로 이벤트가 없을 경우 서버에 데이터를 요청하도록 하는 것이다!
만약 설정한 시간안에 새로운 이벤트(타이핑)을 할 경우 전에 입력했던 이벤트는 취소된다!
코드
코루틴을 이용해서 구현했다!
fun <T> debounce(
timeMillis: Long = 300L,
coroutineScope: CoroutineScope,
block: (T) -> Unit
): (T) -> Unit {
var debounceJob: Job? = null
return {
debounceJob?.cancel()
debounceJob = coroutineScope.launch {
delay(timeMillis)
block(it)
}
}
}
'Android > Android 적용' 카테고리의 다른 글
[Android 적용] Health Service API(with.watch OS) (1) | 2024.11.25 |
---|---|
[Android 적용] TextView 더보기 기능 (0) | 2024.07.28 |
[Android 적용] 네이버 지도 API(3) - 클러스터링 마커 (0) | 2024.06.13 |
[Android 적용] 네이버 지도 API(2) - 위치 (0) | 2024.06.10 |
[Android 적용] 네이버 지도 API(1) - 지도 띄우기(with.mapView) (2) | 2024.06.10 |