flutter 쓰로틀링 ,연속적인 클릭 제한

황인호·2023년 9월 11일
0

연속적으로 클릭하는 클릭을 제한하려고한다.

  1. 변수선언
    DateTime? lastTapTime;

  2. 코드작성

if (lastTapTime == null || now.difference(lastTapTime)!.inMilliseconds > 1000) {
	lastTapTime = now;
    /* 실행하려고하는 코드 */
}
  1. 설명
    lastTapTiem 은 사용자가 마지막으로 클릭했을때의 시간을 저장하는 변수임

now 는 말그대로 현재 시간임

첫번째 조건은 lastTapTime 이 아직 설정되지 않았다는건 => 사용자가 아직 한번도 탭을 하지않았다는의미임

두번째 조건은 now.difference(lastTapTime!).inMilliseconds >1000 에서
now.difference(lastTapTime!) 은 현재 시간과 마지막 시간 사이의 차이임

이게 뭔말이냐면

사용자가 클릭한 시간이 10시 10분 10초 이다.
now 의 값은 10시 10분 10초
그리고 사용자가 10시 10분 10초 500ms 에 클릭을했다면
lastTapTime 의 값은 10시 10분 10초 500ms 이다.
now 와 lastTapTime 의 현재 시간과 마지막 시간 사이에는 500ms 이다.
즉 1초가 안넘어가기 때문에 10시 10분 10초 500ms 때에 사용자가 클릭한 내용은 실행되지않고 무시된다.

무시된다는거는 스택,큐로 안쌓인다는 뜻임

profile
성장중인 백엔드 개발자!!

0개의 댓글