2010-02-11 10 views
1

가능한 중복 :
Sleep in Javascript
Is there some way to introduce a delay in javascript?
how to make a sleep in javascript?JavaScript는 여러 스레드를 지원합니까? 그렇지 않다면 sleep()을 어떻게 구현해야합니까?

어떤 잠도() 함수는 제공되지 것 우리는 하나를 만들 수 있습니까?

+0

참조 : http://stackoverflow.com/questions/24849/is-there-some-way-to-introduce-a-delay-in-javascript 및 http://stackoverflow.com/questions/951021/ javascript-sleep 및 http://stackoverflow.com/questions/1036612/how-to-make-a-sleep-in-javascript – Shog9

답변

0

자바 스크립트는 동기식입니다. 크롬을 제외한 모든 브라우저에는 단일 실행 스레드가 있습니다. 즉, 이 아니므로 멀티 스레딩을 지원하지 않습니다. 가능하면 setTimeout을 사용하여 sleep() 같은 기능을 생산할 수 있습니다. 이 5 초마다 펄스 것, 예를 들어, 당신은 등 계속 다른 함수를 호출 할 수

function test() { 
    alert("interval"); 
    setTimeout(test, 5000); 
} 
4

자바 스크립트를 스레딩에 관련된 모든 기능을 지정하지 않으며,이 웹 브라우저에 내장 될 때 스레드를 지원하지 않습니다 (HTML5 작업자는 다소 스레드와 유사하지만)

페이지가 사용자 입력에 응답하지 않는 것처럼 보이기 때문에 브라우저에서 주 스레드를 차단하는 것은 좋지 않습니다.

나머지 프로그램의 실행을 지연 시키려면 setTimeout을 사용하십시오. 이 기능을 사용하는 경우 :

function f() { 
    // do some stuff 
    sleep(1000); 
    // more stuff 
} 

두 부분으로 나눕니다. 두 번째 부분은 setTimeout 계속 :

function f() { 
    // do some stuff 
    setTimeout(g, 1000); 
} 

function g() { 
    // more stuff 
} 

있는 유일한 방법은 당신이 이벤트 핸들러가 유선이있는 경우 사용자가 시간 fg 실행 사이의 페이지와 상호 작용하는 경우가 발생 할 수 있다는 것입니다 알고 있어야.

관련 문제