¿Por qué seguir utilizando IE = Edge compatible con X-UA?

95

Últimamente he tomado varios cursos en línea y todavía veo que algunos instructores agregan la siguiente metaetiqueta en la parte superior de sus documentos de forma predeterminada:

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

El pensamiento parece ser que esto es tan importante y útil como <meta charset="UTF-8">.

¿Pero por qué?

Según la documentación de Modern.ie de Microsoft, es la "mejor práctica" que "garantiza que Internet Explorer utilice el motor más reciente". OK bastante justo.

Sin embargo, si usted sigue el diagrama de flujo en MSDN claramente muestra que un documento sin `información X-UA-Compatible se remite a las preferencias "Vista de compatibilidad" del usuario, y si eso no se establece a continuación, sólo tiene que seguir la declaración DOCTYPE .

En otras palabras, a menos que el usuario tenga alguna configuración de Vista de compatibilidad implementada, IE simplemente seguirá su! DOCTYPE y usará el último modo estándar de su navegador para renderizar de todos modos ... No es necesario hacer una X-UA-Compatible IE=Edgedeclaración en absoluto.

Como dice MSDN: " Utilice la declaración de tipo de documento HTML5 para habilitar el modo perimetral ".

Entonces, ¿en qué circunstancias se X-UA-Compatible IE=Edgenecesita?

Chuck Le Butt
fuente

Respuestas:

153

Como señala la respuesta de @ David, a menos que esté alojando un sitio en la zona "Intranet local", hay muy pocas razones para incluirlo <meta http-equiv="X-UA-Compatible" content="IE=edge">en sus páginas web y (de acuerdo con las recomendaciones de mejores prácticas de Microsoft ) absolutamente ninguna razón para incluirlo en el HTML. (Debe colocarlo en la configuración del servidor o en los encabezados del sitio, no en el HTML en sí).

Si está considerando usar X-UA-Compatibleen cualquier parte de su proyecto, debe recordar que la Vista de compatibilidad solo afecta a IE8, 9 y 10. Solo se introdujo en IE8 y se deshabilitó en IE11.

También tenga en cuenta que IE11 es la única versión oficialmente compatible de IE en este momento . Todas las versiones anteriores deben considerarse inseguras.

Si esa no fue una razón suficiente para convencerlo de que no lo use, considere que Microsoft afirma que IE8 y superior ya se procesan automáticamente en el modo estándar cuando <!DOCTYPEhay a presente , lo que lo hace aún más inútil.

Puede ver por sí mismo el flujo que lleva IE para decidir qué modo de documento usar:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Como puede ver, si no hay una X-UA-Compatiblemetaetiqueta o un encabezado HTTP, verifica la configuración de "Vista de compatibilidad" del usuario. Si el usuario no tiene ninguno para su sitio web, IE verifica la presencia de una <!DOCTYPEdeclaración. Si encuentra uno, utiliza automáticamente el último modo estándar (también conocido como "EmulateIEx"). Si no es así, vuelve al modo Quirks.

Aún más razones por las que no debería usar la metaetiqueta "X-UA-Compatible" de Microsoft (el énfasis es mío):

Cuando Internet Explorer encuentra la etiqueta META compatible con X-UA, comienza de nuevo utilizando el motor de la versión designada. Se trata de un impacto en el rendimiento porque el navegador debe detenerse y reiniciarse para analizar el contenido.

En otras palabras, ralentiza el procesamiento de la página inicial.

La directiva X-UA-Compatible es una herramienta que permite que las aplicaciones funcionen en la última versión de Internet Explorer mientras se realizan actualizaciones a la aplicación .

Solo fue diseñado para uso temporal.

La mejor práctica es un encabezado HTTP compatible con X-UA . Agregar la directiva al encabezado de respuesta le indica a Internet Explorer qué motor usar antes de comenzar a analizar el contenido. Esto debe configurarse en el servidor del sitio web.

En otras palabras, existen mejores formas de implementar X-UA-Compatible si es absolutamente necesario.

A partir del 12 de enero de 2016, solo la versión más actual de Internet Explorer disponible para un sistema operativo compatible recibirá asistencia técnica y actualizaciones de seguridad. Internet Explorer 11 es la última versión de Internet Explorer y seguirá recibiendo actualizaciones de seguridad, correcciones de compatibilidad y soporte técnico en Windows 7, Windows 8.1 y Windows 10 .

IE11 es la única versión de IE con soporte oficial .

La única razón para incluir la X-UA-Compatiblemetaetiqueta en su HTML era anular la configuración de "Vista de compatibilidad" de un usuario en IE8, 9 y 10 para su sitio web. En casi todos los casos, el usuario no habrá cambiado estas configuraciones (¿por qué lo harían?), Y ahora esos navegadores ya no son compatibles.

En resumen: esta etiqueta ha tenido su día.

Chuck Le Butt
fuente
17
Esos diagramas de flujo son fantásticos.
bennettp123
9
Solo una nota, a partir de hoy (16/10/2015), es cierto que el botón de compatibilidad en IE11 desapareció, pero aún se puede habilitar en el menú Configuración, por lo que aún existe como una posibilidad. Lo usamos hoy porque nuestro software basado en web se usa en intranets corporativas que tienen sistemas heredados que requieren el modo de compatibilidad para funcionar, por lo que tenemos que evitarlo. Sin embargo, un gran consejo sobre el encabezado HTTP, ¡gracias por eso!
Doug Johnson
1
Dado que todavía es posible habilitar la vista de compatibilidad en IE11 y los clientes corporativos lo están haciendo, el encabezado / etiqueta sigue siendo útil. Puedo ver por qué el encabezado HTTP es superior, pero si la etiqueta está al principio del DOM, se hace poco daño, y solo en los navegadores que no comenzaron en el modo Edge. Como disposición únicamente para el usuario ocasional atascado en la vista de compatibilidad, no creo que sea una mala práctica usar la etiqueta (justo en la parte superior de <head>).
Tom Boutell
2
@ChuckLeButt O su administrador lo ha hecho "por" ellos a través de la Política de grupo. Sigue siendo muy importante en entornos corporativos, que es donde ha sido la mayor victoria para nosotros tener una forma de anularlo.
Tom Boutell
2
@ChuckLeButt Veo su punto y no tengo windows-fu para contradecirlo ... y, sin embargo, nuestro cliente nos dijo que tenían IE11 en modo compat en todos los ámbitos; cómo lo consiguieron no fue realmente conocimiento compartido con nosotros. Es posible que realmente lo tuvieran en una lista explícita todo el tiempo.
Tom Boutell
18

Si el usuario está navegando en una página ubicada en la zona "Intranet local" (como en una intranet corporativa), la "vista de compatibilidad" está activada de forma predeterminada. Aquí es cuando he utilizado "X-UA-Compatible" para obligar a IE a utilizar el motor más reciente.

David
fuente
Sí, eso parece un uso válido, pero en esa situación probablemente querrá ponerlo en la configuración del servidor o en los encabezados del sitio de todos modos. stackoverflow.com/a/9338959/199700
Chuck Le Butt
1
También hay un cambio causado en parte por Microsoft que desaprueba un poco la Vista de compatibilidad. Además de la Intranet local, si un dominio tiene muchos subdominios y aplicaciones, agregar la Vista de compatibilidad para un subdominio lo aplica a TODO el dominio ahora (antes solo se aplicaba al subdominio específico). Por lo tanto, si solo tiene una aplicación que lo requiera, debe hacer esto para todas las demás para evitar problemas de soporte.
kilkenny
@ChuckLeButt, los encabezados son buenos siempre que esté en la red, pero si un usuario elige guardar la página localmente, todo lo que le quedan son las <meta>etiquetas incrustadas . Por eso, en general, es una buena práctica replicar también los encabezados importantes como <meta>etiquetas.
ravilov
1

Siempre que esté configurado en "Edge", se valida como HTML5, y me han dicho que solo hace que IE vuelva a representar la página si el sitio ya la estaba representando en modo de compatibilidad. Aún así, ponerlo en la configuración del servidor ( .htaccess, etc.) es mejor que poner el HTML de cada página.

Michael McGinnis
fuente