2009-06-13 8 views
1

Ich werde nicht in einem bestimmten Zeitraum einen Block Code ausführen und dann, wenn Sie fertig sind, weiter mit einem anderen Block von Code.Javascript Timing-Problem

+1

so ???? was willst du? Bitte beweisen Sie mehr Informationen. Irgendein Code .. usw. – Shoban

+1

Vielleicht ist sein Problem mit der Tatsache, dass nachdem setTimeout gesetzt ist, javascript sofort weiter den Rest seines Skripts ausführt? Wenn dies der Fall ist, müssen Sie festlegen, dass setTimeout eine Funktion aufruft, und rufen Sie innerhalb dieser Funktion, die Sie aufrufen, die Funktion auf, die nach Abschluss ausgeführt werden soll. –

+0

Sind Sie an einem Framework interessiert? MooTools hat eine glatte Verkettungsschnittstelle, um dies zu einem Kinderspiel zu machen. –

Antwort

0

SetTimeout - führt Code nach einem Zeitintervall

clear - bricht die setTimeout()

Weitere Details here.

2

Verwenden Sie die setTimeout() ist wahrscheinlich, was Sie wollen. Zum Beispiel ...

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

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

Hoffnung, es hilft

2

Dies ist, wie Sie es tun würde, mit der setTimeout Funktion, die Code als erstes Argument nennen dauert und wie viel Zeit sollte es warten vor dem Aufruf es (in Millisekunden) als zweites Argument:

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

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

Aufgrund der Natur von Javascript Sie den Code, den Sie ausführen möchten einzukapseln müssen nach dem Timeout in seiner eigenen Funktion fertig ist, sonst wäre es, bevor die ausgeführt werden Timeout ist beendet. Dies ist im Wesentlichen eine callback, und es ist ein großer Teil der ereignisbasierten Natur von Javascript.

0

Verwenden Sie setTimeout.

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

und setInterval ist wie setTimeout, außer es immer wieder einen Code wiederholt.

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> 
Verwandte Themen