Statusanzeige in einem INPUT-Feld aktualisieren
flashnfantasy
- javascript
0 fastix®
Habe in JavaScript eine Strategie-Spiel geschrieben, das auch wunderbar funktioniert.
Jedoch dauern manche Spielzüge in JS etwas länger (etwa 2min).
Um den Spieler zu zeigen, daß sich was tut habe ich ein INPUT-Feld, in das ich ständig den Stand der Überlegungen des JS reinschreibe, eine Art 'Alive'-Meldung.
Ganz kurz nur meine Idee:
function writeTextfield(name, data)
{
// Schreibt in ein Textfeld die entsprechenden Daten
var spt = document.getElementsByName(name);
if (0 < spt.length)
{
spt[0].value = data;
}
}
Bei Firefox und Opera wird das INPUT-Feld auch ständig aktualisiert, aber ausgerechnet der IE wartet damit, bis der Script zuende ausgeführt wurde.
Ich will auch da eine ständige Aktualisierung erzwingen, nur wie ?
Moin!
Ich will auch da eine ständige Aktualisierung erzwingen, nur wie ?
Definiere "ständige Aktualisierung".
Poste den _dazu_ gehörigen Quelltext.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
function writeTextfield(name, data)
{
// Schreibt in ein Textfeld die entsprechenden Daten
var spt = document.getElementsByName(name);
if (0 < spt.length)
{
spt[0].value = data;
}
}
function loopy()
{
window.offscreenBuffering = false;
for (var i = 0; i < 21210; i++)
{
writeTextfield('hero', "loop " + i);
}
}
-----------------------------------
<input type="Text" name="hero" value="0" size="20" maxlength="20">
-----------------------------------
Grob gesagt sähe das Beispiel so aus (Das ist mein Testfile)
Das Ausführen von Loopy dauert etwa 1 sek.
Bei Opera und Firefox wird mehrmals in dieser Zeit in das Textfeld ein Wert geschrieben.
Beim Internet-Explorer passiert das erst am Ende des Scriptes - also nach einer Sekunde.
Bei meinem Fall dauert der Script 1-2 Minutee, und alle 2 Sekunden wird irgendwas in das Feld geschrieben, also nichts Weltbewegendes, nur, damit man weiß, wie lange der Script in etwa noch läuft....