wahsaga: Optionen einer Select Box hinzufügen

Beitrag lesen

hi,

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.

innerHTML zu erweitern, ist idR. eine Veränderung des DOM-Baumes (bzw. es ist nicht trivial und mit wenig Aufwand entscheidbar, ob es eine darstellt oder nicht).

In so fern würde ich es für vertretbar halten, wenn in so einem Falle nicht "gecached" würde.

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.

In deinem Beispiel wurden hingegen nur Objekteigenschaften geändert [1] - kein direkter Einfluss auf's DOM, keine erneute Elementfindung notwendig.

[1] Ja, innerHTML ist natürlich auch eine Eigenschaft - aber eben eine u.U. direkt DOM-Relevante, gegenüber vielen anderen.

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.

Gut, aber das sagt ja wenig darüber aus, ob auch die Elementfindung jedes mal neu komplett durchlaufen würde oder nicht.

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }