테스트 사이트 - 개발 중인 베타 버전입니다

js setInterval() 관련 질문입니다. 채택완료

조윤진 5년 전 조회 2,304

</p>

<p>var t = 0;</p>

<p>setInterval(() => $('#asdf').text(t++),1); // asdf라는 div태그가 있다는 가정하에</p>

<p>

위 코드를 실행했는데,1초에 1000ms가 늘어나야하는게 1초에 약 200~300ms가 늘어납니다.

chrome 브라우저인데, 어케된건가요?

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
5년 전

해당 함수는 자바스크립트의 싱글스레드 특성상 정확한 시간에 실행하지 않고 근처값에 실행되고 또한 실행 중에도 지연 현상이 발생합니다.

시간값에 맞게 변화를 원하신다면 자바스크립트 시간 함수(date)를 이용하여 보정하시거나 표현하셔야 합니다. https://wonism.github.io/set-interval-correction/ 해당 사이트에서 관련 글을 참조해보세요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

5년 전

 

 

 

출처: https://offbyone.tistory.com/241">https://offbyone.tistory.com/241 [쉬고 싶은 개발자]

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

5년 전

1000이 1초 입니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

조윤진
5년 전
네 압니다.
1초에 1000만큼 늘어나야 정상인데 그보다 더 적게 늘어나서...

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인