Werde das alles mal studieren, bin schon gespannt auf die JavaScript-Neuerungen!
[http://code.msdn.microsoft.com/ie8whitepapers/Release/ProjectReleases.aspx?ReleaseId=571@title=DOM Core Improvements]
- getAttribute, setAttribute usw. sollen gefixt sein, liefern endlich den tatsächlichen Attributwert bzw. setzen das Attribut und nicht die Eigenschaft (war überfällig). Wäre die Frage, ob setAttribute("onclick") usw. geht.
- getElementById findet nur Elemente, die wirklich diese ID haben, nicht Namen. (Hooray!)
- BUTTON Value Attribute Not Submitted (HOORAY!)
Das hört sich wie der Zoom im Opera an, bei dem Bildlaufleisten möglichst vermieden werden. Tolle Sache, muss ich mal ausprobieren. Das war wirklich ein Manko des IE7-Zooms.
Versioning and Cross-Document Interaction
Soll erklären, was man zu beachten hat, wenn man JavaScript-mäßig zwischen Dokumenten wechselt, die vom IE mit unterschiedlichen Engines verarbeitet werden. Dazu gibts document.documentMode. Wirkliche Probleme werden da nicht gelöst, sondern nur aufgezeigt. Man muss jetzt wohl sehr bedacht darauf sein, für welchen Modus bzw. ggf. für welche Modi man scriptet.
Circular-Memory-Leak Mitigation
Zirkuläre Objektreferenzen haben im IE < 8 kleinere oder größere Memory-Leaks bewirkt, jetzt soll der Garbage Collector korrekt arbeiten.
Ehrlich gesagt habe ich mich da nie groß geschert und öfters im großen Stil mit zirkulären Referenzen gearbeitet - vor allem im Zusammenhang mit Closures. Vielleicht hat der IE dadurch ein paar Kilobyte Speicher vollgesaut, aber ich schreibe auch keine Webanwendungen in der Klasse von GMail und Co., die stundenlang im Browser offen sind.
Platform Performance Improvements
- Knotenlisten werden schneller durchlaufen. Die childNodes-Knotenliste sollte man so durchlaufen:
for(var node = elem.childNodes[0]; node != null; node = node.nextSibling) {
// Do something with node.
}
- CSS Selector API (Hooray! Say goodbye to getElementsByClassName-Gewurschtel, say hello to document.querySelectorAll(".klasse"))
- Performance-Verbesserungen im Detail
Mathias