2014-10-13 30 views
64

Ho preso diversi corsi on-line ultimamente e ho ancora vedere alcuni istruttori aggiungere il seguente meta tag alla cima dei loro documenti per impostazione predefinita:Perché utilizzare X-UA-Compatible IE = Edge più?

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

Il pensiero sembra essere che questo è altrettanto importante e utile come <meta charset="UTF-8">.

Ma perché?

Secondo Microsoft's Modern.ie documentation E ' "best practice", che "assicura Internet Explorer utilizza l'ultimo motore". Ok, abbastanza giusto.

Tuttavia, se si seguono the flow diagram on MSDN mostra chiaramente che un documento senza `informazioni X-UA-Compatible viene inoltrata a "Visualizzazione Compatibilità" le preferenze dell'utente, e if that's not set then just follow the !DOCTYPE declaration.

In altre parole, a meno che l'utente abbia una certa compatibilità di visualizzare le impostazioni in atto, IE will just follow your !DOCTYPE and use the latest standards mode of your browser for rendering anyway ... Non c'è bisogno di un X-UA-Compatible IE=Edge comunicato a tutti.

Come MSDN dice: "Use the HTML5 document type declaration to enable edge mode".

Quindi, in quali circostanze è necessario X-UA-Compatible IE=Edge?

risposta

109

Come @ risposta di David fa notare, a meno che non si sta ospitando un sito nella zona "Intranet locale", c'è ben poco motivo di includere <meta http-equiv="X-UA-Compatible" content="IE=edge"> nelle vostre pagine web, e (secondo Microsoft's best practice recommendations) assolutamente alcuna ragione per includerla nell'HTML. (Si consiglia di posizionarlo nel server di configurazione o del sito intestazioni -. Non nel codice HTML stesso)

Se si pensa di utilizzare X-UA-Compatible ovunque nel progetto, si dovrebbe ricordare che Visualizzazione Compatibilità colpisce solo IE8, 9 e 10. È stato introdotto solo in IE8 ed è stato disabilitato in IE11.

ricordiamo inoltre che IE11 è the only officially supported version of IE at this time. Tutte le versioni precedenti dovrebbero essere considerate insicure.

Se questo non era un motivo sufficiente per convincerti a non usarlo, considera che Microsoft dichiara che IE8 and above already automatically render in Standards Mode when a <!DOCTYPE is present, rendendolo ancora più inutile.

Si può vedere di persona il flusso che IE prende per decidere quale modalità documento da utilizzare:

enter image description here enter image description here

Come si può vedere, se non X-UA-Compatible meta intestazione tag o HTTP è presente, controlla le impostazioni di "Visualizzazione Compatibilità" dell'utente. Se l'utente non ne ha per il tuo sito web, IE verifica la presenza di una dichiarazione <!DOCTYPE. Se ne trova uno utilizza automaticamente l'ultima modalità Standard (nota come "EmulateIEx"). Se non lo fa, ritorna in modalità Quirks.

Ancora più motivi per cui non si dovrebbe utilizzare la "X-UA-Compatible" meta tag:

Citazioni da Microsoft (sottolineatura mia):

Rallenta pagina iniziale di rendering ...

Quando Internet Explorer incontra l'etichetta X-UA-Compatible META si ricomincia con il motore della versione designato. Si tratta di un problema di prestazioni perché il browser deve arrestarsi e riavviare l'analisi del contenuto.

E 'stato sempre e solo progettato per un uso temporaneo ...

La direttiva X-UA-Compatible è uno strumento per consentire alle applicazioni di lavorare nella più recente Internet Explorer versione mentre gli aggiornamenti sono fatti per l'applicazione.

C'è better ways of implementing X-UA-Compatible se assolutamente bisogno ...

la pratica migliore è un header HTTP X-UA-Compatible. Aggiungendo la direttiva all'intestazione della risposta viene indicato a Internet Explorer quale motore utilizzare prima di iniziare l'analisi del contenuto. Questo deve essere configurato nel server del sito web.

Ora solo IE11 è officially supported on modern operating systems ...

A partire dal 12 gennaio 2016, solo la versione più recente di Internet Explorer disponibile per un sistema operativo supportato riceverà supporti tecnici e aggiornamenti di sicurezza. Internet Explorer 11 è l'ultima versione di Internet Explorer e continuerà a ricevere aggiornamenti di sicurezza, correzioni di compatibilità e supporto tecnico su Windows 7, Windows 8.1 e Windows 10.

In realtà, l'unico motivo per includere il X-UA-Compatible meta tag nel codice HTML è stato quello di ignorare le impostazioni "Visualizzazione Compatibilità" di un utente per il tuo sito. In quasi tutti i casi l'utente non ha modificato queste impostazioni (perché dovrebbero?).

In breve: non farlo.

+12

Questi diagrammi di flusso sono fantastici. – bennettp123

+6

Solo una nota, a partire da oggi (16/10/2015), è vero che il pulsante compat in IE11 è scomparso, ma può ancora essere abilitato nel menu Impostazioni, quindi esiste ancora come possibilità. Oggi lo usiamo perché il nostro software basato sul web viene utilizzato nelle intranet aziendali che hanno sistemi legacy che richiedono il funzionamento della modalità compat, quindi dobbiamo aggirarlo. Ottimo suggerimento sull'header HTTP, grazie per quello! –

+0

my 2 cents: non includere '

+0

Sì, sembra un uso valido, ma in quella situazione probabilmente vorrai metterlo nella configurazione del server, o comunque nelle intestazioni del sito? http://stackoverflow.com/a/9338959/199700 –

+0

C'è anche una modifica causata in parte da Microsoft che deprecano la Visualizzazione Compatibilità un po '. Oltre a Intranet locale, se un dominio contiene molti sottodomini e applicazioni, aggiungendo la Visualizzazione compatibilità per un sottodominio si applica ora al dominio INTERO (prima che si applicasse solo allo specifico sottodominio). Quindi, se hai solo un'applicazione che potrebbe richiederlo, dovresti farlo per tutti gli altri per evitare problemi di supporto. – kilkenny

1

Fintanto che è impostato su "Bordo", viene convalidato come HTML5 e mi viene detto che causa solo il rendering di IE della pagina se il sito lo stava già visualizzando in modalità Compatibilità. Tuttavia, metterlo nella configurazione del server (.htaccess, ecc.) È meglio che inserire l'HTML di ogni pagina.

0

Henri Sivonen ha fatto un riferimento molto utile su come i browser hanno scelto la modalità di rendering. Puoi leggerlo tutto lì: https://hsivonen.fi/doctype/.

+2

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia – Dethariel

Problemi correlati