프로그래밍 언어/HTML,CSS,JS

setTimeout 과 setInterval의 차이

Rateye 2021. 10. 7. 10:36
728x90
반응형
질문 : setTimeout 또는 setInterval?

내가 알 수있는 한,이 두 가지 자바 스크립트는 동일한 방식으로 작동합니다.

옵션 A :

function myTimeoutFunction()
{
    doStuff();
    setTimeout(myTimeoutFunction, 1000);
}

myTimeoutFunction();

옵션 B :

function myTimeoutFunction()
{
    doStuff();
}

myTimeoutFunction();
setInterval(myTimeoutFunction, 1000);

setTimeoutsetInterval을 사용하는 데 차이가 있습니까?

답변

기본적으로 동일한 작업을 시도하지만 setTimeout 은 1000ms를 대기하고 함수를 실행 한 다음 다른 시간 제한을 설정하기 setInterval 접근 방식이 setTimeout 접근 방식보다 더 정확합니다. 따라서 대기 시간은 실제로 1000ms 이상입니다 (또는 함수를 실행하는 데 오랜 시간이 걸리는 경우 훨씬 더 많이).

setInterval정확히 1000ms마다 실행될 것이라고 생각할 수도 있지만 setInterval 도 지연된다는 점에 유의해야합니다. 즉, 스크립트의 다른 부분이 실행중인 경우 간격 완료 될 때까지 기다려야합니다.

이 Fiddle 에서 시간 초과가 늦어지는 반면 간격은 거의 항상 1 초당 거의 1 호출 (스크립트가 수행하려는 작업)이라는 것을 알 수 있습니다. 상단의 속도 변수를 20과 같이 작은 값으로 변경하면 (초당 50 회 실행을 시도 함을 의미) 간격은 초당 평균 50 회 반복에 도달하지 않습니다.

지연은 거의 항상 무시할 수 있지만 정말 정확한 것을 프로그래밍하는 경우 자체 조정 타이머 를 사용해야합니다 (기본적으로 생성되는 지연에 대해 지속적으로 자체 조정되는 시간 제한 기반 타이머).

출처 : https://stackoverflow.com/questions/729921/settimeout-or-setinterval
728x90
반응형