Christian Seiler: Optionen einer Select Box hinzufügen

Beitrag lesen

Hallo wahsaga,

Dass ein Browser das bei with() nicht macht, davon gehe ich eigentlich aus - diese Syntax besagt doch explizit, "nimm dir dieses Element, und führe damit die folgenden Schritte durch".

Es gibt diverse Punkte in der JavaScript-Spezifikation, die einen verblüffen, deswegen testete ich das mit with() nochmal (auf die Weise, die molily gesagt hat).

Eher hätte es mich interessiert, ob das von Christian zuerst angesprochene wirklich eine relevante Verbesserung darstellt

Tut es. Ich hatte in irgend einem Stück JS-Code, den ich so auf die Schnelle natürlich nicht mehr finden werde, mal eine Schleife drin, in der ich document.getElementById ('...').innerHTML += 'text'; gemacht habe - und das hat teilweise ewig gedauert. Als ich dann vor der Schleife var elem = doucment.getElementById ('...'); und in der Schleife nur elem.innerHTML += ...; machte, war das schon eine *deutlich spürbare* Verbesserung.

Ich würde von einer optimierten Engine eigentlich erwarten, dass sie das Ergebnis einer Elementermittlung so lange "cached", wie an DOM-Struktur keine weiteren Änderungen (Hinzufügen/Entfernen von Elementen) durchgeführt werden.

Beschwere Dich bei den Browserherstellern. ;-)

Und ob dein Vorschlag diesbezüglich Aussagekraft besitzt, bezweifle ich.
getElementById ist nativ implementiert, deine func jedoch nicht. Dass _diese_, wenn man sie in den beiden Varianten aus Christians erstem Posting entsprechend einsetzen würde, mehrfach aufgerufen würde, würde ich sogar eigentlich erwarten.

Bei molilys Beispiel ging es ja nur darum, ob bei with() eine Funktion mehrfach aufgerufen wird.

Viele Grüße,
Christian

--
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup