2011-12-07 3 views
0

다음 코드를 사용하여 3 초 동안 Java 스크립트 실행을 기다립니다. 다음과 같이 동일한 작업을 수행 할 수있는 쉬운 방법이 있다면setTimeout을 수행하는 더 쉬운 방법이 있습니까?

var test = setTimeout(function(){ 
    alert("Test"); 
},3000); 

내 질문은 ... 내가 미리

에서 $ .idle

$.idle(3000); 
alert("Test"); 

감사를 사용하는 일부 블로그를 통해 온 입니다

+1

[? JQuery와 수면]의 중복 가능성 (http://stackoverflow.com/questions/4437600/sleep-in- jquery). JavaScript에서 스레드를 일시 중지 할 수 없기 때문에 대답은 거의 "아니오"입니다. –

+0

좋아요, 제 생각 엔 .. setTimeout 만 사용해야합니다 ... 감사합니다. –

답변

1

필자가이 웹 사이트를 통해 내가 저자에게 전적인 신용을 줄 수 있었으면 좋겠다. 그러나 jQuery에서 Deferreds를 사용하는 것이 좋다. 여기

당신이 보여 것과 매우 유사 깨끗하고 기능, 호출 메커니즘을 가질 수 있도록 Deferreds을 활용하는 기능입니다 (앤디 E가 언급 한대로, 차단하지 않습니다 'CEPT를.)

$.wait = function(time) { 
    return $.Deferred(function(dfd) { 
     // resolve() calls all of the registered 
     // 'done' callbacks (registered using then()) 
     setTimeout(dfd.resolve, time); 
    }).promise(); 
}; 

이제 Deferreds 덕분에, 당신은 당신이이 같은 App에서 시간 제한을 작성할 수 있습니다

$.wait(5000).then(function() { 
    alert("Hello from the future!"); 
}); 
+0

좋아, 알 겠어 ... 이것은 모든 코드를 차단합니다 inside.then function ... 이것은 잘 될 것입니다. –

2

지연 이후입니까? 이 기본 JS 이후의 setTimeout에

http://api.jquery.com/delay/

+0

'delay()'는 여기에서 도움이되지 않습니다. 왜냐하면 특별히 jQuery 애니메이션을 연결하기 때문입니다. 'alert()'를'delay()'에 붙이는 것은'setTimeout()'을 사용하는 것보다 모든 일을 더 복잡하게 만들지 않습니다. 링크 된 문서에서도 * "[it]은 JavaScript의 기본 setTimeout *을 대체하지 않습니다." –

+0

delay()도 보았습니다.하지만 setTimeout은 하나입니다 ... 감사 ... –

1

()를 호출하면, 최대한 빨리 얻을 수있다.

+0

좋아요, setTimeout 만 ... 감사합니다 –

관련 문제