Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Zeitverzögerung in JavaScript
Frage
kann mir jemand sagen wie ich eine Zeitverzögerung in einer Schleife hinbekomme?
danke,
alfons
Antwort 1 von abc123
var waiting=false;
function _wait(){
waiting=false;
}
function wait(duration) {
waiting=true;
window.setTimeout("_wait()",duration);
while(waiting);
}
Aufruf: wait(5000); // 5 Sekunden warten
Antwort 2 von abc123
Habe es ausprobiert. Dummerweise funktioniert es nicht. Warum auch immer?
Gruss,
Michael
Gruss,
Michael
Antwort 3 von abc123
OK, es geht auch so:
Gruss,
Michael
function waitC(seconds) {
var stopTime = (new Date()).getSeconds();
stopTime = ((stopTime+seconds)<60)?stopTime+seconds:seconds-(60-stopTime);
while((new Date()).getSeconds()<stopTime);
}
Gruss,
Michael
Antwort 4 von MixMax
mit einer Whileschleife gehts zwar bestimmt, aber das führt zu einer starken cpu-last bei der schleife.
wenn technisch bei dir möglich dann mache eine funktion in der die befehle stehen die erst nach einiger zeit gestartet werden sollen.
also
wenn technisch bei dir möglich dann mache eine funktion in der die befehle stehen die erst nach einiger zeit gestartet werden sollen.
also
...vorherige befehle
window.setTimeout('Wartebis();',20000);
function Wartebis() {
...befehle die erst nach der Zeit von
20 sekunden gestatet werden.
}
Antwort 5 von alfons
funzt schon irgendwie, aber nur wenn ich ein alert reinschreibe und mir die stopTime ausgeben lasse.
Werd mal noch ein wenig basteln ...
danke!
Werd mal noch ein wenig basteln ...
danke!
Antwort 6 von abc123
Ich dachte Dir geht es um eine Pause INNERHALB Deines Javascript Codes und nicht um die verzögerte Ausführung einer bestimmten Funktion.
Leider gibt es keinen sleep, wait oder ähnliche Befehle in Javascript.
Was genau möchtest Du damit erreichen?
Leider gibt es keinen sleep, wait oder ähnliche Befehle in Javascript.
Was genau möchtest Du damit erreichen?
Antwort 7 von abc123
Noch eine Alternative:
Gruss,
Michael
function test(a) {
switch(a) {
default:
alert("Code vor der ersten Pause");
// hier Code einfügen
window.setTimeout("test(2)", 5000);
break;
case 2:
alert("Code nach der ersten Pause");
// hier Code einfügen
window.setTimeout("test(3)", 3000);
break;
case 3:
alert("Code nach der zweiten Pause");
// hier Code einfügen
}
}
Gruss,
Michael
Antwort 8 von alfons
Danke, danke! Damit komme ich eine Weile aus. Der letzte Beitrag ist nat. sehr elegant, da hatte ich gar nicht drüber nachgedacht!
nochmal Danke,
alfons
nochmal Danke,
alfons

