setTimeout과 setInterval의 차이 setTimeout 시뮬레이션 setInterval
그러나 이 두 함수는 차이가 있다. setInterval은 코드를 한 번 실행한 후에 고정된 시간 간격을 지나면 자동으로 코드를 반복하고 setTimeout은 그 코드를 한 번만 실행한다.
setInterval("showTime()", 5000);
setTimeout("showTime()", 5000);
이 두 가지 방법은 매우 비슷해 보일 수도 있고 결과도 비슷할 수도 있다. 그러나 가장 큰 차이점은 setTimeout 방법은 5초마다 showTime 함수를 실행하지 않는다는 것이다. 이것은 setTimeout을 호출할 때마다 5초 후에 showTime 함수를 실행하는 것이다.이것은 showTime 함수의 주체 부분을 2초 안에 집행해야 한다면 전체 함수는 7초마다 한 번씩 집행해야 한다는 것을 의미한다.setInterval은 자신이 호출한 함수에 얽매이지 않고 간단하게 일정 시간마다 그 함수를 반복해서 실행한다.
만약 고정된 시간 간격으로 특정한 동작을 정확하게 실행하도록 요구한다면 setInterval을 사용하는 것이 가장 좋고, 연속 호출로 인해 서로 간섭되는 문제가 발생하지 않으려면, 특히 함수의 호출에 많은 계산과 긴 처리 시간이 필요하다면 setTimeout을 사용하는 것이 가장 좋다.
현재 setTimeout으로 setInterval을 시뮬레이션하여 setInterval 호출 함수를 실행한 후 5초를 기다렸다가 실행합니다
코드는 다음과 같습니다.
function Log(txt) {
document.getElementById("msg").innerHTML += txt + "<br/>";
}
function showTime() {
var datatime = new Date();
Log(datatime.toTimeString());
}
window.setInterval = function (callback, delay) {
var obj = arguments.callee;
if (obj.timeout == undefined) {
obj.timeout = new Object();
obj.timeout.called = true;
}
function fn() {
if (obj.timeout.called) {
callback();
setTimeout(arguments.callee, delay);
}
}
fn();
return obj.timeout;
}
window.clearInterval = function (fn) {
fn.called = false;
}
result = setInterval(showTime, 1000);
function btnClick() {
clearInterval(result);
}
시정을 환영합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.