728x90
반응형
질문 : setTimeout 또는 setInterval?
내가 알 수있는 한,이 두 가지 자바 스크립트는 동일한 방식으로 작동합니다.
옵션 A :
function myTimeoutFunction()
{
doStuff();
setTimeout(myTimeoutFunction, 1000);
}
myTimeoutFunction();
옵션 B :
function myTimeoutFunction()
{
doStuff();
}
myTimeoutFunction();
setInterval(myTimeoutFunction, 1000);
setTimeout 과 setInterval을 사용하는 데 차이가 있습니까?
답변
기본적으로 동일한 작업을 시도하지만 setTimeout
은 1000ms를 대기하고 함수를 실행 한 다음 다른 시간 제한을 설정하기 setInterval
접근 방식이 setTimeout
접근 방식보다 더 정확합니다. 따라서 대기 시간은 실제로 1000ms 이상입니다 (또는 함수를 실행하는 데 오랜 시간이 걸리는 경우 훨씬 더 많이).
setInterval
이 정확히 1000ms마다 실행될 것이라고 생각할 수도 있지만 setInterval
도 지연된다는 점에 유의해야합니다. 즉, 스크립트의 다른 부분이 실행중인 경우 간격 완료 될 때까지 기다려야합니다.
이 Fiddle 에서 시간 초과가 늦어지는 반면 간격은 거의 항상 1 초당 거의 1 호출 (스크립트가 수행하려는 작업)이라는 것을 알 수 있습니다. 상단의 속도 변수를 20과 같이 작은 값으로 변경하면 (초당 50 회 실행을 시도 함을 의미) 간격은 초당 평균 50 회 반복에 도달하지 않습니다.
지연은 거의 항상 무시할 수 있지만 정말 정확한 것을 프로그래밍하는 경우 자체 조정 타이머 를 사용해야합니다 (기본적으로 생성되는 지연에 대해 지속적으로 자체 조정되는 시간 제한 기반 타이머).
출처 : https://stackoverflow.com/questions/729921/settimeout-or-setinterval
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
$ http.get 요청에 데이터를 전달하는 AngularJS (0) | 2021.10.12 |
---|---|
jQuery에서 JSON으로 직렬화 (0) | 2021.10.12 |
JavaScript의 배열 객체 속성 순서에 대해서 (0) | 2021.10.06 |
다중 코어 시스템의 Node.js (0) | 2021.10.06 |
JavaScript에서 여러 줄 문자열 만들기 (0) | 2021.10.06 |