ich habe ein ziemlich großes Array (bis zu 2000 Elemente), welches in einer Selektbox dargestellt werden soll. Da es soviele Elemente sind, sollen immer nur 100 Elemente angezeigt werden. Also wenn die Seite geladen wird die ersten 100, wenn man auf weiter klickt die nächsten 100 usw.
Ein weiteres Problem ist, dass sich der Value des Option-Tag vom tatsächlich angezeigten Wert abweicht. Ich bräuchte als evtl. zwei Arrays, oder ein 2-dimensionales Array, einmal mit den Werten für die Values und einmal den Wert der angezeigt wird.
Kann Javascript so große Arrays überhaupt vernünftig verarbeiten? Natürlich muss es auch in allen gebräuchlichen Browsern funktionieren… Wie kann man das machen?
Ein weiteres Problem ist, dass sich der Value des Option-Tag
vom tatsächlich angezeigten Wert abweicht. Ich bräuchte als
evtl. zwei Arrays, oder ein 2-dimensionales Array, einmal mit
den Werten für die Values und einmal den Wert der angezeigt
wird.
wenn du schon sagst, dass es etwas mehr daten sind, wuerde ich sparsam mit den dimensionen sein. das sollte es auch tun:
foo = new Array()
foo['value'] = 'text';
Kann Javascript so große Arrays überhaupt vernünftig
verarbeiten?
prinzipiell schon. kann natuerlich sein, dass der eine oder andere client dann ein gewisses speicherproblem hat.
zu den eigentlichen nutzdaten kommt ja noch performance und speicher, um das dann in der seite zu rendern.
Natürlich muss es auch in allen gebräuchlichen
Browsern funktionieren… Wie kann man das machen?
schau mal ins selfhtml objektreferenz „Option“ udn dann die methoden der form-elemente.
im nn4 kann es gewisse schwierigkeiten geben.
Hallo,
ja, ein 2dim Array wäre für option und value angebracht.
Z.B. so:
var arySelBoxData = new Array();
arySelBoxData[0] = ["Name1","Value1"];
arySelBoxData[1] = ["Name2","Value2"];
...
Sollte Deine SelectBox schon Daten beinhalten, dann löscht Du sie vorher:
with (self.document.idFormular) {
while (idSelectBox.options.length) {
idSelectBox.options[0] = null;
}
}
Neu füllen kannst Du sie via:
with (self.document.idFormular) {
for (var i=0; i