web-dev-qa-db-fra.com

Pourquoi utiliser plus IE = Edge compatible avec X-UA?

J'ai récemment suivi plusieurs cours en ligne et je vois encore des instructeurs ajouter la balise méta suivante en haut de leurs documents par défaut:

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

L'idée semble être que ceci est tout aussi important et utile que <meta charset="UTF-8">.

Mais pourquoi?

Selon la documentation Modern.ie de Microsoft , il s’agit de la "meilleure pratique" qui "garantit que Internet Explorer utilise le dernier moteur". OK très bien.

Cependant, si vous suivez le diagramme de flux sur MSDN , il indique clairement qu'un document ne contenant pas d'informations compatibles avec X-UA est transféré vers les préférences de "Vue de compatibilité" de l'utilisateur et si c'est non défini. il suffit ensuite de suivre la déclaration! DOCTYPE .

En d'autres termes, à moins que l'utilisateur ne dispose de certains paramètres d'affichage de compatibilité, IE suivra simplement votre! DOCTYPE et utilisera le dernier mode standard de votre navigateur pour le rendu, de toute façon ... Pas besoin d'un X-UA-Compatible IE=Edge déclaration du tout.

Comme le dit MSDN: " Utilisez la déclaration de type de document HTML5 pour activer le mode Edge ".

Donc, dans quelles circonstances X-UA-Compatible IE=Edge est-il nécessaire?

76
Chuck Le Butt

Comme le souligne la réponse de @ David, sauf si vous hébergez un site dans la zone "Intranet local", il y a très peu de raisons d'inclure <meta http-equiv="X-UA-Compatible" content="IE=Edge"> dans vos pages Web et (conformément aux recommandations de Microsoft en matière de pratiques recommandées ) aucune raison de l'inclure dans le code HTML. (Vous devez le placer dans la configuration de votre serveur ou dans les en-têtes de site, pas dans le code HTML lui-même.)

Si vous envisagez d'utiliser X-UA-Compatible n'importe où dans votre projet, n'oubliez pas que l'affichage de compatibilité affecte uniquement IE8, 9 et 10. Il n'a été introduit que dans IE8 et a été désactivé dans IE11.

Sachez également que IE11 est la seule version officiellement prise en charge de IE actuellement }. Toutes les versions plus anciennes doivent être considérées comme peu sûres.

Si cela ne suffisait pas pour vous convaincre de ne pas l'utiliser, considérez que Microsoft déclare que IE8 et versions ultérieures s'affichent déjà automatiquement en mode Standards lorsqu'un <!DOCTYPE est présent }, ce qui le rend encore plus inutile.

Vous pouvez voir par vous-même le flux que IE prend pour décider quel mode de document utiliser:

enter image description hereenter image description here

Comme vous pouvez le constater, si aucune balise méta ni en-tête HTTP X-UA-Compatible n'est présent, le système vérifie les paramètres "Affichage de compatibilité" de l'utilisateur. Si l'utilisateur n'en a pas pour votre site Web, IE, puis vérifie la présence d'une déclaration <!DOCTYPE. S'il en trouve un, il utilise automatiquement le dernier mode de standardisation (aussi appelé "EmulateIEx"). Si ce n'est pas le cas, il repasse en mode Quirks.

Encore plus de raisons pour lesquelles vous ne devriez pas utiliser la balise méta "X-UA-Compatible" de Microsoft elles-mêmes (c'est moi qui souligne):

Lorsque Internet Explorer rencontre la balise META compatible X-UA, il recommence en utilisant le moteur de la version désignée. Il s'agit d'une performance, car le navigateur doit arrêter et redémarrer l'analyse du contenu.

En d'autres termes, il ralentit le rendu de la page initiale

La directive X-UA-Compatible est un outil permettant aux applications de fonctionner dans la dernière version d'Internet Explorer lorsque des mises à jour sont apportées à l'application.

Il n'a été conçu que pour un usage temporaire.

La meilleure pratique consiste à utiliser un en-tête HTTP compatible avec X-UA. L'ajout de la directive à l'en-tête de réponse indique à Internet Explorer le moteur à utiliser avant le début de l'analyse du contenu. Cela doit être configuré sur le serveur du site Web.

En d'autres termes, il y a de meilleures façons de mettre en œuvre la compatibilité X-UA } si vous en avez absolument besoin.

À compter du 12 janvier 2016, seule la version la plus récente d'Internet Explorer disponible pour un système d'exploitation pris en charge recevra un support technique et des mises à jour de sécurité. Internet Explorer 11 est la dernière version d'Internet Explorer et continuera de recevoir les mises à jour de sécurité, les correctifs de compatibilité et le support technique sur Windows 7, Windows 8.1 et Windows 10.

IE11 est le seul version officiellement prise en charge de IE .

La seule raison d'inclure la balise méta X-UA-Compatible dans votre code HTML était de remplacer les paramètres "Affichage de compatibilité" d'un utilisateur dans IE8, 9 et 10 pour votre site Web. Dans presque tous les cas, l'utilisateur n'aura pas modifié ces paramètres (pourquoi le ferait-il?), Et maintenant ces navigateurs ne sont même plus supportés.

En bref: cette balise a fait son temps.

128
Chuck Le Butt

Si l'utilisateur parcourt une page située dans la zone "Intranet local" (par exemple, sur un intranet d'entreprise), la "vue de compatibilité" est activée par défaut. C’est à ce moment-là que j’ai utilisé "X-UA-Compatible" pour forcer IE à utiliser le dernier moteur.

16
David

Tant qu'il est défini sur «Edge», il est validé en tant que HTML5, et on me dit que IE restitue le rendu de la page si le site l'a déjà rendu en mode de compatibilité. Néanmoins, il est préférable de le placer dans la configuration du serveur (.htaccess, etc.) que de mettre le code HTML de chaque page.

1
Michael McGinnis

Henri Sivonen a fait une référence très utile sur la façon dont les navigateurs ont choisi le mode de rendu. Vous pouvez lire tout cela ici: https://hsivonen.fi/doctype/ .

0
JulienW