webentwicklung-frage-antwort-db.com.de

Warum sollte X-UA-kompatibler IE = Edge nicht mehr verwendet werden?

Ich habe in letzter Zeit mehrere Online-Kurse besucht und es werden immer noch einige Kursleiter angezeigt, die standardmäßig das folgende Meta-Tag am Anfang ihrer Dokumente einfügen:

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

Der Gedanke scheint zu sein, dass dies genauso wichtig und nützlich ist wie <meta charset="UTF-8">.

Aber warum?

Laut Microsoft Modern.ie Dokumentation ist es "Best Practice", die "sicherstellt, dass Internet Explorer die neueste Engine verwendet". OK Fair genug.

Wenn Sie jedoch dem Flussdiagramm auf MSDN folgen zeigen Sie deutlich, dass ein Dokument ohne "X-UA-kompatible Informationen" an die Benutzereinstellungen für die "Kompatibilitätsansicht" weitergeleitet wird, und wenn das ist nicht gesetzt, dann folgen Sie einfach der! DOCTYPE Deklaration .

Mit anderen Worten, wenn der Benutzer keine Einstellungen für die Kompatibilitätsansicht vorgenommen hat, folgt IE einfach Ihrem! DOCTYPE und verwendet ohnehin den neuesten Standardmodus Ihres Browsers zum Rendern ... Keine Notwendigkeit eine X-UA-Compatible IE=Edge Anweisung überhaupt.

Wie MSDN sagt: " Verwenden Sie die HTML5-Dokumenttypdeklaration, um den Edge-Modus zu aktivieren ".

Also, unter welchen Umständen wird X-UA-Compatible IE=Edge benötigt?

76
Chuck Le Butt

Wie @ Davids Antwort darauf hinweist, gibt es, sofern Sie keine Site in der Zone "Lokales Intranet" hosten, nur sehr wenige Gründe, <meta http-equiv="X-UA-Compatible" content="IE=Edge"> In Ihre Webseiten aufzunehmen, und zwar (gemäß der bewährten Vorgehensweise von Microsoft) Empfehlungen ) absolut kein Grund, es in den HTML aufzunehmen. (Sie sollten es in Ihrer Serverkonfiguration oder in den Site-Headern platzieren - nicht im HTML selbst.)

Wenn Sie erwägen, X-UA-Compatible Irgendwo in Ihrem Projekt zu verwenden, sollten Sie daran denken, dass die Kompatibilitätsansicht nur IE8, 9 und 10 betrifft. Sie wurde nur in IE8 eingeführt und in IE11 deaktiviert.

Beachten Sie auch, dass IE11 die einzige offiziell unterstützte Version von IE zur Zeit ist. Alle älteren Versionen sollten als unsicher eingestuft werden.

Wenn das nicht genug Grund war, Sie davon zu überzeugen, es nicht zu verwenden, denken Sie daran, dass Microsoft angibt, dass IE8 und höher bereits automatisch im Standardmodus gerendert werden, wenn ein <!DOCTYPE Vorhanden ist es ist noch sinnloser.

Sie können selbst sehen, welchen Ablauf IE) verwendet, um den zu verwendenden Dokumentmodus zu bestimmen:

enter image description hereenter image description here

Wie Sie sehen können, werden die Einstellungen der "Kompatibilitätsansicht" des Benutzers überprüft, wenn kein X-UA-Compatible - Metatag oder kein HTTP-Header vorhanden ist. Wenn der Benutzer keine für Ihre Website hat, prüft IE), ob eine <!DOCTYPE - Erklärung vorliegt. Wenn er eine findet, verwendet er automatisch den neuesten Standardmodus (aka "EmulateIEx"). Wenn nicht, kehrt es in den Quirks-Modus zurück.

Noch mehr Gründe, warum Sie das Meta-Tag "X-UA-Compatible" von Microsoft selbst nicht verwenden sollten (Hervorhebung meines):

Wenn Internet Explorer auf das X-UA-kompatible META-Tag stößt, wird es mit der Engine der angegebenen Version neu gestartet. Dies ist ein Leistungstreffer , da der Browser die Analyse des Inhalts stoppen und neu starten muss.

Mit anderen Worten, es verlangsamt das Rendern der ersten Seite

Die X-UA-kompatible Direktive ist ein Tool, mit dem Anwendungen in der neuesten Internet Explorer-Version ausgeführt werden können, während die Anwendung aktualisiert wird .

Es war immer nur für den vorübergehenden Gebrauch gedacht.

Die beste Vorgehensweise ist ein X-UA-kompatibler HTTP-Header . Durch Hinzufügen der Direktive zum Antwortheader wird Internet Explorer mitgeteilt, welche Engine verwendet werden soll, bevor mit dem Parsen von Inhalten begonnen wird. Dies muss auf dem Server der Website konfiguriert werden.

Mit anderen Worten, es gibt bessere Möglichkeiten, X-UA-kompatibel zu implementieren , wenn Sie es unbedingt benötigen.

Ab dem 12. Januar 2016 erhält nur die aktuellste Version von Internet Explorer, die für ein unterstütztes Betriebssystem verfügbar ist, technischen Support und Sicherheitsupdates. Internet Explorer 11 ist die letzte Version von Internet Explorer und wird weiterhin Sicherheitsupdates, Kompatibilitätskorrekturen und technischen Support für Windows 7, Windows 8.1 und erhalten Windows 10 .

IE11 ist die einzige offiziell unterstützte Version von IE .

Der einzige Grund, das Meta-Tag X-UA-Compatible In Ihren HTML-Code aufzunehmen, bestand darin, die "Kompatibilitätsansicht" -Einstellungen eines Benutzers in IE8, 9 und 10 für Ihre Website zu überschreiben. In fast allen Fällen hat der Benutzer diese Einstellungen nicht geändert (warum?), Und jetzt werden diese Browser nicht einmal mehr unterstützt.

Kurzum: Dieser Tag hat ausgedient.

136
Chuck Le Butt

Wenn der Benutzer eine Seite in der Zone "Lokales Intranet" (z. B. in einem Unternehmensintranet) durchsucht, ist die "Kompatibilitätsansicht" standardmäßig aktiviert. In diesem Fall habe ich "X-UA-Compatible" verwendet, um IE zu zwingen, die neueste Engine zu verwenden.

16
David

Solange es auf "Edge" gesetzt ist, wird es als HTML5 validiert, und es wird mir nur gesagt, dass IE die Seite erneut rendert, wenn die Site sie bereits im Kompatibilitätsmodus rendert. Das Einfügen in die Serverkonfiguration (.htaccess usw.) ist jedoch besser als das Einfügen des HTML-Codes jeder Seite.

1

Henri Sivonen hat einen sehr nützlichen Hinweis darauf gegeben, wie Browser den Rendermodus ausgewählt haben. Sie können alles dort lesen: https://hsivonen.fi/doctype/ .

0
JulienW