• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Zeitsteuerung von for - Schleifen?

Siggi

New member
Gibt es in JavaScript eine Möglichkeit der zeitlichen Verzögerung der einzelnen Schleifendurchläufe in for-Schleifen? Also z.B. soll jeder Schleifendurchlauf 100ms dauern.
Oder muß ich dieses Problem auschließlich mit der Methode setInterval() lösen?

Gruß Siggi
 
Du könntest

'ne laufvariable in der Funktion 'function sowieso ()' hochzählen lassen und am Ende

if (laufvariable < endzeit)
{
laufvariable=laufvariable + x;
window.settimeout ('function sowieso()', 100);
}
 
Danke, kasimir83 für Deinen Tip.
Gute Alternative - falls ich dich richtig verstanden habe (siehe Beispielscript unten). Es scheint aber wohl dann keine Zeitsteuerung innerhalb von for-Schleifen zu geben - oder?

Ein zweites Problem!
Wie erreiche ich, daß eventuell nachfolgende Scriptanweisungen mit Ihrer Ausführung so lange warten, bis die Timeout-Funktion beendet ist.
Gibt es eine Möglichkeit den Status einer Funktion (aktiv oder abgeschlossen)abzufragen?

Gruß Siggi


<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
<!--
//wachsender Farbbalken
var i = 0;
var t;
function imageGrow(){
clearTimeout(t);
if(i <= 800){
document.getElementById("rechteck").width = 32 + (i * 1);
i++;
t = setTimeout("imageGrow()",10)
}
else{
clearTimeout(t);
i = 0;
}
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" onLoad="imageGrow()">
<img id="rechteck" src="file:///F|/msg/siteb/images/profil/profil_bg8.gif" width="32" height="20">
</body>
</html>
 
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/javascript">
<!--
//wachsender Farbbalken
var i = 0;
function imageGrow(){
if(i <= 800){
document.getElementById("rechteck").width = 32 + (i * 1);
i++;
window.setTimeout("imageGrow()",10)
}
else
{
window.setTimeOut('naechstefunction()',1);
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" onLoad="imageGrow()">
<img id="rechteck" src="contb.jpg" width="32" height="20">
</body>
</html>

Das Problem andere Funktionen warten zu lassen ist mit dem da oben erledigt, du rufst sie einfach erst am Ende auf.

Die Zeitsteuerung in For-Schleifen gibt es auch, indem du die Zeit hochzählst, allerdings musst du dir daraus einen Netten Algorythmus einfallen lassen´, wie du aus der Zeit Koordinaten machst.
 
Zurück
Oben