setTimeout ...... Abarbeitung von Threads?
Spike
- javascript
0 straks
Hallo!
Ich habe folgendes Problem:
Es wird etwas dynamisch in ein Div geschrieben
document.all.div_msg.innerHTML += s;
und danach erfolgt eine Copy Anweisung mit Hilfe des fso, welche in einer anderen Function ausgelagert ist.
z.B.
schreibeInZielordner(srcfile , newname , escape(srcDir), escape(targetDir) );
Das ganze wird mehrmals in einer For Schleife abgearbeitet.
Nun zu dem eigentlichen Problem:
Der Browser bzw Windows aber will erst die Copy Operationen ausführen und danach wird das gesamte Div auf dem Screen ausgegeben, ich will aber nach jedem Copy-Vorgang eine Zeile auf dem Screen ausgeben.
Ich habe schon einiges ausprobiert z.B.
document.all.delay = 1000;
document.recalc();
document.all.div_msg.insertAdjacentHTML("afterEnd", s);
var s2 = "schreibeInZielordner('" + srcfile + "','" + newname+ "','" + escape(srcDir) + "','" + escape(targetDir) + "');";
setTimeout(s2, 10 );
setTimeout("document.all.div_msg.innerHTML += 'willi<br>'", 100 );
Gibt es dafür ein passendes Workaround?
THX
Hi,
wenn ich das Problem richtig verstanden habe, dann könnte die Lösung so aussehen:
Definiere eine generelle variable (XXX) als Schalter (ev. je nachfolgender Funktion oder gleich ein Array).
Definiere eine übergeordnete Funktion, die einerseits die nachfolgende Funktion aufruft und andererseits
mit setTimeout immer abfragt, ob XXX schon gesetzt ist. Wenn ja, kann die nächste Funktion aufgerufen werden
und das Spiel beginnt von neuem, bis alles abgearbeitet ist.
In den einzelnen nachfolgenden Funktionen muß dann natürlich beim Ende jeweils die zugehörige Variable gesetzt werden.
Grüße
Ernst
PS: Die JS-Animation auf meiner HP funkt auch so.