Gastposting von Stephanus Schulte, Windows Platform Support Escalation Engineer bei der Microsoft Deutschland GmbH.
Schon mit Internet Explorer 8 hatte Microsoft aus Gründen der Abwärtskompatibilität das Konzept des Dokumentkompatibilitätsmodus eingeführt. Diese Funktionalität ermöglicht es auf einfache Art und Weise insbesondere für bereits bestehende Anwendungen die richtige Rendering Engine festzulegen. Folgende Möglichkeiten stehen dabei zur Verfügung:
Viele Kunden fragen nun, wie Internet Explorer 9 bestimmt, welche Rendering Engine für die Darstellung einer Webseite zu nutzten ist. Diese Frage ist nicht so ganz trivial zu beantworten, daher haben wir ein Diagramm zur Illustration der Reihenfolge bei der Entscheidungsfindung erstellt:
Man kann diesen Entscheidungsbaum grob zusammenfassen:
Die Priorität bei mehreren Definitionen folgt dieser Reihenfolge: “per page“ wird höher gewichtet als “per server“. In dem Artikel IE8: Compatibility View–Wie kann manuell, serverbasiert oder per Policy das Verhalten beeinflusst werden? findet man weitere Informationen zu Möglichkeiten der Beeinflussung der verwendeten Kompatibilitätsansicht.
Das Standardverhalten des Internet Explorers, wenn keine dieser Vorgaben gesetzt sind, ist abhängig von der verwendeten DOCTYPE-Deklarierung. Weitere Informationen dazu findet man in dem umfangreichen, englischen Blogeintrag IE 8 Compatibility - Meta Tags, Http Headers, User Agent Strings etc etc und IE’s Compatibility Features for Site Developers.
Die Beschreibung des Meta-Tags in der MSDN kann unter META-Tags und Sperren für zukünftige Kompatibilität eingesehen werden. Den Unterschied zwischen “Browser Mode” und “Document Mode” haben die IE-Entwickler in dem englischen Blogpost Testing sites with Browser Mode vs. Doc Mode ausführlich erklärt.
Sehr empfehlenswert als wichtige Anlaufstelle für alle Informationen rund um das Thema Internet Explorer-Migration ist weiterhin das Internet Explorer - Readiness Toolkit, wo ausführliche Informationen für Webentwickler und Administratoren hinterlegt sind, sowie der Entwicklerinformationsindex für Internet Explorer.
Nur drei Wochen nach der Veröffentlichung von Internet Explorer 9 Platform Preview 6 (IE9 PP6) auf der PDC legt Microsoft heute mit der Platform Preview 7 (PP7) nach. Wir veröffentlichen neue Platform Preview-Versionen immer dann, wenn wir größere Schritte in der Weiterentwicklung von Internet Explorer 9 erreicht haben. Mit PP7 haben wir jetzt weitere, signifikante Geschwindigkeitsverbesserungen insbesondere im Hinblick auf die Performance unserer JavaScript-Engine “Chakra” implementiert.
IE9 Platform Preview 7 herunterladen
Microsoft legt bei der Weiterentwicklung des Internet Explorers schon seit langem Wert auf die Geschwindigkeit beim Darstellen echter Webseiten. Die JavaScript-Engine ist zwar nur eines von vielen Subsystemen eines Browsers, die in Summe das Geschwindigkeitserlebnis des Internetnutzers beeinflussen. Die Messung der JavaScript-Geschwindigkeit mit synthetischen Benchmarks ist jedoch sehr populär und wird von vielen fälschlicherweise als alleiniger Gradmesser für die Beurteilung der Gesamtgeschwindigkeit eines Browsers benutzt.
Die Geschwindigkeit wird jedoch von vielen weiteren Dingen beeinflusst, die jenseits der einzelnen Browsersubsysteme liegen. Wie gut schützt ein Browser Internetnutzer vor langsamen Add-Ins? Vor schlecht entwickelten Webseiten, die zum Crash neigen? Wie sehr integriert ein Browser Webanwendungen zukünftig in das Betriebssystem? Muss man erst den Browsers starten und zu der gewünschten Webseite navigieren oder kann man Webseiten direkt an die Startleiste anzuheften und mit einem Klick auf die Webseite wechseln? Die Geschwindigkeitsvorteile, die man durch die Nutzung des Grafikprozessors zur Hardwarebeschleunigung sowie mehrerer Prozessorkerne moderner Multi-Core-CPUs erzielen kann, sind immens.
Echte Webseiten nutzen JavaScript, um zum Beispiel Benutzereingaben zu verarbeiten, Zeichenketten zu manipulieren oder Objekte auf dem Bildschirm zu steuern und zu bewegen. Wir konzentrieren uns daher bei der Weiterentwicklung unabhängig von synthetischen Benchmarks besonders auf die am häufigsten verwendeten Funktionen von echten Webseiten. Im Rahmen der Internet Explorer 9 Platform Preview-Veröffentlichungen haben wir deshalb eine Test Drive-Seite unter www.ietestdrive.com bereitgestellt. Diese Test Drive-Seite umfasst Webseiten und Anwendungen, die insbesondere Funktionen, die in echten Webseiten oft genutzt werden, in einem realistischen Szenario darstellt.
Diese Seiten zeigen besonders deutlich die Unterschiede zwischen aktuellen Browsern wie zum Beispiel in der letzten Beta 7 von FireFox 4 oder einer aktuellen Version von Google Chrome. Man sieht dabei die Unterschiede im Zusammenspiel aller Subsysteme eines Browsers. Welche Geschwindigkeit am Ende des Tages auf realistischen Webseiten zu erwarten ist, kann man darüber viel besser beurteilen als als das alleinige Messen der Geschwindigkeit einzelner Subsysteme mit Microbenchmarks es erlaubt.
Wir haben mit der Veröffentlichung von IE9 PP7 neue Beispiele hinzugefügt:
Trotzdem werden Webbrowser am häufigsten durch einen Microbenchmarks bewertet: Webkit SunSpider. Wir haben seit der Vorstellung unsere neue JavaScript-Engnie “Chakra” daher jedes Mal auch die Steigerung der Geschwindigkeit veröffentlicht, die wir bei diesem vielzitierten Benchmark errreichen. Gegenüber der ersten veröffentlichten Version von “Chakra” beschleunigten wir IE9 um >300%. Wir holten nicht nur Firefox 3 und 4 ein, sondern sind heute mit IE9 PP7 die #1 in Sachen JavaScript Performance im Webkit SunSpider-Test.
Mittlerweile liegen die Unterschiede zwischen den einzelnen Browsern in diesem Microbenchmark nur noch im Bereich von Microsekunden. Das ist viel kürzer, als ein einzelner Wimpernschlag. Man muss die Tests schon viele, viele Male wiederholen, um überhaupt noch Unterschiede messen zu können. IE9 erreicht die deutlichen Performanceverbesserungen insbesondere durch einen optimierenden JavaScript Compiler, welcher JavaScript in native Maschinensprache umsetzt und dabei optimiert. Optimierungen können für viele Code-Muster Performancegewinne bis zum 100fachen der ursprünglichen Geschwindigkeit ermöglichen. Derartige Compilertechniken werden bisher zum Beispiel von C++ Entwicklern für native Windows-Anwendungen benutzt. Mit IE9 PP7 können zukünftig Webentwickler auch optimiert kompiliertes JavaScript nutzen.
Nun wird vorgeschlagen, diesen Benchmark als obsolet anzusehen und auf die Entwicklung neuerer Microbenchmarks zu setzen. Gerade als aktueller “Gewinner” in diesem Benchmark möchten wir die Gelegenheit nutzen, um an dieser Stelle wieder auf unsere Position hinzuweisen, dass synthetische Benchmarks der Subsysteme kein geeigneter Weg sind, generelle Aussagen über die Geschwindigkeit eines Browsers bei echten Webseiten zu machen. Sie helfen Entwicklern bei der Beurteilung der einzelnen Komponenten - sie sagen aber nichts aus über das Verhalten eines Browsers bei der täglichen Nutzung. Wenn man sich zu sehr an Microbenchmarks orientiert, kann das möglicherweise auch zu einer ungesunden Form des Wettbewerbs führen, bei dem es nur noch darum geht, ein Produkt auf bessere Benchmarkergebnisse hin zu optimieren.
Diesen Weg halten wir für falsch. Das Beurteilen eines Browsers anhand der Messungen eines Subsystems allein ist zu ungenau und kann daher kontraproduktiv sein. Es entspricht auch nicht dem Verhalten von echten Webseiten und bietet daher keinen Mehrwert.
IE9 verbindet jetzt die schnellste JavaScript-Performance mit branchenführenden Innovation rund um die Hardwarebeschleunigung im Browser. Die Vorteile von IE9 liegen in seinem einzigartigem Ansatz:
Diese Fortschritte bei der Geschwindigkeit eines Browsers nützt Entwicklern und am Ende des Tages Endanwendern gleichermaßen. Entwickler können zukünftig durch die Unterstützung von den neuen, sich gerade etablierenden Webstandards mit IE9 darauf setzen, Code nur noch einmal schreiben zu müssen, der dann auf allen aktuellen Browsern läuft. IE9 ist unser am schnellsten vom Markt angenommene Webbrowser mit mittlerweile über 13 Millionen Downloads in nur 2 Monaten.
Daher der Aufruf an alle Webentwickler: Wer noch nicht mit IE9 Beta an Bord gegangen ist, sollte jetzt bei der neuen Platform Preview den Zug nicht verpassen!
Auf www.internet-explorer9.de stellt Microsoft eine Produktübersicht zur Verfügung. Weiterführende Informationen rund um den Internet Explorer 9 finden Administratoren auf Microsoft TechNet und Entwickler auf MSDN.
Daniel Melanchthon Senior Technology Evangelist Microsoft Developer & Platform Evangelism Group (D&PE)