Зачем использовать X-UA-совместимый IE = Edge?

В последнее время я сделал несколько онлайн-курсов, и я по-прежнему вижу, что некоторые инструкторы по умолчанию добавляют следующий метатег в начало своих документов:

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

Полагают, что это так же важно и полезно, как <meta charset="UTF-8">.

Но почему?

Согласно документация Microsoft Modern.ie, это "лучшая практика", которая "гарантирует, что Internet Explorer использует новейший движок". Хорошо, справедливо.

Однако, если вы следуете блок-схеме на MSDN, это ясно показывает, что документ без` X-UA-совместимой информации пересылается в пользовательские настройки "Совместимость" и если это не задано, просто следуйте за объявлением! DOCTYPE.

Другими словами, если у пользователя нет некоторых параметров просмотра совместимости, IE будет просто следовать вашему! DOCTYPE и использовать последний режим стандартов вашего браузера для рендеринг в любом случае... Нет необходимости в операторе X-UA-Compatible IE=Edge.

Как MSDN говорит: " Используйте объявление типа документа HTML5 для включения режима edge".

Итак, в каких обстоятельствах требуется X-UA-Compatible IE=Edge?

Ответ 1

Как указывает @David ответ, если вы не размещаете сайт в зоне "Местная интрасеть", есть очень мало причин включать <meta http-equiv="X-UA-Compatible" content="IE=edge"> в свои веб-страницы и (согласно Рекомендации Microsoft по лучшей практике) абсолютно никакой причины включить его в HTML. (Вы должны поместить его в конфигурацию сервера или заголовки сайта, а не в сам HTML.)

Если вы планируете использовать X-UA-Compatible в любом месте вашего проекта, вы должны помнить, что представление совместимости влияет только на IE8, 9 и 10. Оно было введено только в IE8 и отключено в IE11.

Также имейте в виду, что IE11 является единственной официально поддерживаемой версией IE на данный момент. Все старые версии следует считать небезопасными.

Если этого недостаточно, чтобы убедить вас не использовать его, подумайте, что Microsoft заявляет, что IE8 и выше уже автоматически отображаются в режиме стандартов, когда <!DOCTYPE присутствует, что делает его еще более бессмысленным.

Вы сами видите поток, который IE принимает, чтобы решить, какой режим документа использовать:

enter image description hereenter image description here

Как вы можете видеть, если нет метатега X-UA-Compatible или HTTP-заголовка, он проверяет настройки пользователя "Совместимость". Если у пользователя нет своего веб-сайта, IE затем проверяет наличие объявления <!DOCTYPE. Если он находит один, он автоматически использует последний режим стандартов (он же "EmulateIEx" ). Если этого не произойдет, он вернется в режим Quirks.

Еще больше причин, по которым вам не следует использовать метатег "X-UA-Compatible":

Цитаты из Microsoft (основное внимание):

Он замедляет визуализацию начальной страницы...

Когда Internet Explorer сталкивается с меткой META, совместимой с X-UA, она начинается с использования движка указанной версии. Это рейтинг производительности, потому что браузер должен остановить и перезапустить анализ содержимого.

Он был предназначен только для временного использования...

Директива X-UA-Compatible - это инструмент, позволяющий приложениям работать в последней версии Internet Explorer , в то время как обновления выполняются в приложении.

Там лучшие способы реализации X-UA-Compatible, если вам это абсолютно необходимо...

Лучшей практикой является X-UA-совместимый HTTP-заголовок. Добавление директивы в заголовок ответа указывает Internet Explorer, какой движок использовать до начала анализа содержимого. Это необходимо настроить на сервере веб-сайта.

Теперь только IE11 официально поддерживается в современных операционных системах...

Начиная с 12 января 2016 года, только самая последняя версия Internet Explorer, доступная для поддерживаемой операционной системы, получит техническую поддержку и обновления для системы безопасности. Internet Explorer 11 - последняя версия Internet Explorer и будет продолжать получать обновления для системы безопасности, исправления совместимости и техническую поддержку в Windows 7, Windows 8.1 и Windows 10.

В реальности единственной причиной включения метатега X-UA-Compatible в ваш HTML было переопределение пользовательских настроек "Совместимость" для вашего сайта. Почти в каждом случае пользователь не изменит эти настройки (почему они?).

Вкратце: не делайте этого.

Ответ 2

Если пользователь просматривает страницу, расположенную в зоне "Местная интрасеть" (например, в корпоративной интрасети), по умолчанию "представление совместимости" включено. Это когда я использовал "X-UA-Compatible", чтобы заставить IE использовать последний движок.

Ответ 3

Пока он установлен в "Edge", он проверяется как HTML5, и мне говорят, что он заставляет IE повторно отображать страницу, если сайт уже показывал ее в режиме совместимости. Тем не менее, поместить его в конфигурацию сервера (.htaccess и т.д.) Лучше, чем вставлять в HTML каждой страницы.

Ответ 4

Анри Сивонен сделал очень полезную ссылку о том, как браузеры выбрали режим рендеринга. Вы можете прочитать все это: https://hsivonen.fi/doctype/.