Cosa fa <meta http-equiv="X-UA-Compatible" content="IE=edge">?
Che differenza c'è se una pagina web inizia con
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
e se una pagina inizia con
<!DOCTYPE html>
<html>
<head>
<!-- without X-UA-Compatible meta -->
Se non c'è differenza, suppongo che posso semplicemente ignorare la meta intestazione X-UA-Compatible
, dato che voglio solo che sia resa nella maggior parte delle modalità standard in tutte le versioni di IE.
1374
3
Aggiornamento di ottobre 2015
Questa risposta è stata pubblicata diversi anni fa e ora la domanda dovrebbe davvero essere dovresti anche considerare di usare il tag
X-UA-Compatible
sul tuo sito? con i cambiamenti che Microsoft ha apportato ai suoi browser (più avanti). A seconda dei browser Microsoft che supporti potresti non aver bisogno di continuare ad usare il tagX-UA-Compatible
. Se hai bisogno di supportare IE9 o IE8, allora ti consiglio di usare il tag. Se supportate solo i browser più recenti (IE11 e/o Edge) allora prenderei in considerazione di abbandonare del tutto questo tag. Se usi Twitter Bootstrap e hai bisogno di eliminare gli avvisi di validazione, questo tag deve apparire nell'ordine specificato. Ulteriori informazioni qui sotto:Il meta tag
X-UA-Compatible
permette agli autori web di scegliere con quale versione di Internet Explorer la pagina deve essere resa. IE11 ha apportato dei cambiamenti a queste modalità; vedi la nota di IE11 qui sotto. Microsoft Edge, il browser che ha sostituito IE11, onora il meta tagX-UA-Compatible
solo in certe circostanze. Vedi la nota di Microsoft Edge qui sotto. Secondo Microsoft, quando usi il tagX-UA-Compatible
, dovrebbe essere il più in alto possibile nellahead
del tuo documento: Se stai usando il tag META X-UA-Compatible vuoi posizionarlo il più vicino possibile all'inizio dell'HEAD della pagina. Internet Explorer inizia a interpretare il markup usando l'ultima versione. Quando Internet Explorer incontra il tag X-UA-Compatible META, ricomincia ad usare il motore della versione designata. Questo è un colpo alle prestazioni perché il browser deve fermarsi e ricominciare ad analizzare il contenuto. Ecco le tue opzioni:http-equiv="X-UA-Compatible" content="IE=edge"
, poiché le vecchie versioni hanno molti bug, e non voglio che IE decida di andare in "Modalità compatibilità" e mostrare il mio sito come IE7 vs IE8 o 9. Preferisco sempre l'ultima versione di IE. IE11 Da Microsoft:Usa
content=
"IE=edge,chrome=1"
Salta altre modalità `X-UA-CompatibleLa barra degli indirizzi di IE9 non mostra il [pulsante Vista Compatibilità][MSICON]
e la pagina non mostra anche un'accozzaglia di menu, immagini e caselle di testo fuori posto.
Questo meta tag è richiesto per abilitare
javascript::JSON.parse()
su IE8(anche quando `` è presente)
Il rendering/esecuzione del moderno HTML/CSS/JavaScript è più valido (più bello).
Performance
Il motore di rendering Trident dovrebbe funzionare più velocemente nella sua modalità edge.
Uso
Nel tuo HTML
IE=edge
significa che IE dovrebbe usare l'ultima versione (edge) del suo motore di renderingchrome=1
significa che IE dovrebbe usare il motore di rendering Chrome se installato O meglio nella configurazione del tuo server web:(vedi anche la risposta di RiaD's)
Apache come proposto da pixeline
Nginx come proposto da Stef Pause server {
...
Varnish proxy come proposto da Lucas Riutzel sub vcl_deliver { if( resp.http.Content-Type ~ "text/html" ) { set resp.http.X-UA-Compatible = "IE=edge,chrome=1"; } }
IIS (dalla v7) configurazione
Microsoft raccomanda la modalità Edge da IE11
Come notato da Lynda (vedi commenti), i Cambiamenti di compatibilità in IE11 raccomandano la modalità bordo:
Ma la posizione di Microsoft non era chiara. Un'altra [pagina MSDN non raccomanda la modalità Edge][noEdge]:
Usalo per forzare IE a nascondere quel fastidioso pulsante di compatibilità del browser nella barra degli indirizzi: