2009-06-13 14 views
1

一定の時間内にコードブロックを実行していない場合は、別のコードブロックを実行します。JavaScriptのタイミングの問題

+1

so ????なんでしょう?詳細をご確認ください。いくつかのコード.. etc – Shoban

+1

おそらく彼の問題は、setTimeoutが設定された後、javascriptはスクリプトの残りの部分を即座に実行し続けているという事実でしょうか?このような場合は、setTimeoutで関数を呼び出す必要があります。この関数内では、完了時に実行する関数を呼び出します。 –

+0

フレームワークの使用に興味がありますか? MooToolsには、これを簡単にするための滑らかな連鎖インターフェースがあります。 –

答えて

0

のsetTimeoutは - 時間間隔

てclearTimeout後にコードを実行する - のsetTimeout()

詳細hereを解除します。

2

setTimeout()を使用するのは、おそらくあなたが望むものです。たとえば...

<script type="text/javascript"> 
    function YourFunction() 
    { 
     alert('Hello Stackoverflow'); 
    } 

    window.setTimeout(YourFunction, 1000); 
</script> 

は、それが

2

これは、最初の引数としてコールすると、それが呼び出す前に待つべきどのくらいの時間コードを要するsetTimeout機能を使って、あなたがそれを行うだろうかですがお役に立てば幸いです第二引数として、それ(ミリ秒単位):

function callWhenDone() { 
    // code to call when timeout finishes 
} 

setTimeout(function() { 
    // initial code to run 
    callWhenDone(); 
}, 5000); // 5000 = run in 5 seconds 

ので、あなたはタイムアウトが独自の機能に終了した後に実行したいコードをカプセル化しなければならないのJavascriptの性質のために、それ以外の場合は、前に実行されるだろうタイムアウトが完了しました。これは本質的にcallbackであり、Javascriptのイベントベースの性質の大きな部分です。

0

setTimeoutを使用してください。

setTimeout(function() { 
    // code here 
    // you can use it recursively 
    // setTimeout(...); 
    }, 
    1000 // 1000 miliseconds (= 1 second) 
); 

setIntervalそれは繰り返しのコードを繰り返し除き、setTimeoutのようなものです。

0
<script type="text/javascript"> 

var timer = setInterval("firstFunction()","1000"); //every second call firstFunction() 
var i = 0; 

function firstFunction() 
{ 

    //first code 

    i++; 
    if(i == 3) 
    { 
     clearInterval(timer); 
     secondFunction(); 
    } 
} 

function secondFunction() 
{ 
    //second code 
    alert("done!"); 
} 

</script> 
関連する問題