Antje Hofmann: Problem beim Einfügen von Werten in Listenfeld

Beitrag lesen

Hallo Sven,

Ich habe eine Textdatei mit vier Einträgen. Diese werden beim Laden der Seite per Datenanbindung in ein Listenfeld eingefügt.
Um mein Problem jetzt besser darstellen zu können, schaut Euch am Besten meine Testseite an. (sehr kurz und übersichtlich)

Es ist tatsächlich ein Zeitproblem (zumindest im IE5.5 unter NT). Ich habe jetzt mal mit deinem Beispiel etwas gespielt:

<body onload="einfuegen()">

<p><object id="rsinhalt"
classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83"
align="baseline" border="0" width="192" height="192"><param
name="DataURL" value="test.txt"><param name="UseHeader"
value="true"><param name="FieldDelim" value=";"></object></p>
<script language="JScript">

function einfuegen()
   {
    document.all.rsinhalt.Reset();
    document.all.anzeigetabelle.dataSrc="#rsinhalt";
    i =1;
    setTimeout('setzen()',100);   //hier war die kleinste gueltige Zeit 40ms, alles was drunter lag erzeugt Fehlermeldungen

}

function setzen()
{
if (i <= document.all.rsinhalt.recordset.recordcount)
    {

var neuerEintrag = document.all.inhalttab.innerText;
     var indexnr = document.all.listinhalt.length;
     document.all.listinhalt.options[indexnr] = new Option(neuerEintrag);
     document.all.anzeigetabelle.nextPage();
     i++;
     setTimeout('setzen()',50)  //die Funktion nextPage() braucht mindestens 20ms, sonst wird nur der erste Listeneintrag gezeigt
    }

}

</script>

<form name="Eingabe">
    <p>Datensätze:  <select name="listinhalt" size="1">
    </select> </p>
</form>

<table border="0" width="100%" id="anzeigetabelle"
style="display:none" datapagesize="1">
    <tr>
        <td width="20%"><SPAN id="inhalttab" dataFld="inhalt"></SPAN></td>
    </tr>
</table>

Ich fürchte je größer die Datei ist und je mehr Einträge du hast, umso länger wird es dauern, außerdem ist dies stark vom Browser und vom  Anwendersystem abhängig.

Ein Alternativvorschlag wäre:

speichere deine Daten in einer externen js-Datei in einem Array:
Darauf hast du dann nach dem Laden der Seite Zugriff und auch der Netscape kommt damit zurecht.

Viele Grüße

Antje