2012-12-24 4 views
0

타이밍 이벤트에 대해 읽었습니다. setTimeout에 대해 혼란스러워합니다. W3Schools에 500 밀리 초마다 실행되는 예가 있습니다. 나는 그것이 단지 한 번 작동한다는 것을 setTimeout에 대해 읽었다. linksetTimeout 함수가 영원히 실행되는 이유는 무엇입니까?

<head> 
    <script> 
    function startTime() { 
     var today=new Date(); 
     var h=today.getHours(); 
     var m=today.getMinutes(); 
     var s=today.getSeconds(); 
     document.getElementById('txt').innerHTML=h+":"+m+":"+s; 
     setTimeout(function(){startTime()},500); 
    } 
    </script> 
</head> 
<body onload="startTime()"> 
    <div id="txt"></div> 
</body> 
+6

[w3schools를 참고하여 사용하시기 바랍니다.] (http://w3fools.com) – Pointy

답변

4

기능은 내부 타이머를 재설정합니다

setTimeout(function(){startTime()},500); 

가 실행될 때마다, 그것을 수행하는 마지막 것은 또 다른 반복을 예약 할 수 있습니다.

0

setTimeout 함수는 한 번만 작동합니다. 코드를 살펴보십시오. startTime 함수에서 500 밀리 초 후에 동일한 함수를 다시 호출합니다. 한 번만 작동하려면 재귀 적으로 호출하지 마십시오. 또는 언젠가 반복하기를 원하면 setInterval을 대신 사용하십시오. 이 함수는 언제든지 사용할 수있는 id를 반환합니다.

관련 문제