Guten Morgen,
ich habe in einer String erstmal nur den folgenden Text stehen: "2,7". Nun möchte ich den Aufruf einer Funktion solange wiederholen, bis der String leer ist. In der Funktion wird bei jedem Schritt ein Teil abgeschnitten, der String also immer kürzer, bis er leer ist.
while (eq != "") {
mach_die_welle();
}
Die Funktion sieht so aus:
function mach_die_welle() {
n = eq.indexOf(",");
if (n == -1) {
l = eq;
eq = "";
} else {
l = eq.substring(0,n);
eq = eq.substring(n+1);
}
}
Das hatte im ersten Test augenscheinlich fehlerfrei funktioniert, aber dann wollte ich eine Verzögerung einbauen (und hab mir auch schon anzeigen lassen, wie oft er durch die While-Schleife läuft, Dummy ist ein einfaches Input-Feld):
x = 0;
while (eq != "") {
x = x + 1;
document.getElementById("dummy").value=x;
setTimeout(function () { mach_die_welle(); }, 100);
}
Der Zähler stieg auf: 757756 !!! (Dann bekam ich das Fenster vom Firefox, ob ich die Script-Ausführung unterbrechen möchte)
Warum wird so oft durch die While-Schleife gelaufen? Meinem Verständnis nach hätten es nur 2 Durchläufe sein dürfen. Wie kann ich sonst eine Verzögerung einbauen? (Es sollen später sichtbare CSS-Transitions ablaufen)
Liebe Grüße,
Marvin