Зачем больше использовать 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-Compatible информации перенаправляется в настройки просмотра совместимости пользователя, а если это не установлено, просто используйте объявление !DOCTYPE.

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

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

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


person Chuck Le Butt    schedule 13.10.2014    source источник


Ответы (3)


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

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

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

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

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

введите здесь описание изображениявведите здесь описание изображения

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

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

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

Другими словами, это замедляет начальный рендеринг страницы.

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

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

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

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

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

IE11 — это единственная официально поддерживаемая версия IE.

Единственной причиной включения метатега X-UA-Compatible в ваш HTML было переопределение пользовательских настроек «Просмотр совместимости» в IE8, 9 и 10 для вашего веб-сайта. Почти в каждом случае пользователь не менял эти настройки (зачем?), и теперь эти браузеры даже больше не поддерживаются.

Вкратце: у этого тега был свой день.

person Chuck Le Butt    schedule 13.10.2014
comment
Эти блок-схемы просто фантастические. - person bennettp123; 04.11.2014
comment
Просто примечание: на сегодняшний день (16.10.2015) кнопка совместимости в IE11 действительно исчезла, но ее все еще можно включить в меню «Настройки», поэтому она все еще существует как возможность. Мы используем его сегодня, потому что наше веб-программное обеспечение используется в корпоративных интрасетях, в которых есть устаревшие системы, для работы которых требуется режим совместимости, поэтому нам нужно обойти это. Отличный совет по заголовку HTTP, спасибо за это! - person Doug Johnson; 16.10.2015
comment
мои 2 цента: не включайте <!--[if IE]> перед метатегом X-UA-Compatible - person boly38; 06.10.2017
comment
Поскольку в IE11 по-прежнему можно включить представление совместимости, и корпоративные клиенты делают это, заголовок/тег по-прежнему полезен. Я понимаю, почему HTTP-заголовок предпочтительнее, но если тег находится в самом начале DOM, мало вреда, и только в браузерах, которые не запускались в режиме Edge. Я не считаю плохой практикой использование тега (прямо в верхней части ‹head›) исключительно для случайного пользователя, застрявшего в представлении совместимости. - person Tom Boutell; 20.11.2017
comment
@boutell Кнопка просмотра совместимости была полностью удалена в IE11. Единственный способ, которым пользователь может просмотреть ваш сайт в режиме CV в IE11, — это вручную добавить ваш домен в свой список сайтов для просмотра в режиме CV в своих настройках. docs.microsoft. com/en-us/internet-explorer/ie11-deploy-guide/ - person Chuck Le Butt; 20.11.2017
comment
@ChuckLeButt Или их администратор сделал это за них с помощью групповой политики. Все еще очень важно в корпоративных условиях, где для нас было самой большой победой иметь способ обойти это. - person Tom Boutell; 21.11.2017
comment
@boutell Но администратор должен настроить таргетинг на ваш домен конкретно с помощью своей групповой политики. Зачем им это делать, если это все равно может быть легко переопределено рассматриваемым сайтом? Я просто не могу представить сценарий, который вы предлагаете. Параметры CV групповой политики работают для собственных свойств компании, где они управляют содержимым сайта. Извините, если я что-то упустил. - person Chuck Le Butt; 22.11.2017
comment
@ChuckLeButt Я понимаю вашу точку зрения, и у меня нет Windows-fu, чтобы противоречить ей ... и все же наш клиент сказал нам, что у них есть IE11 в режиме совместимости по всем направлениям; как они его получили, на самом деле с нами не поделились знаниями. Вполне возможно, что он действительно был в явном списке все это время. - person Tom Boutell; 23.11.2017
comment
@boutell Интересно. Спасибо, что поделился. - person Chuck Le Butt; 23.11.2017
comment
Метатег с http-equiv=X-UA-Compatible в настоящее время не проходит проверку HTML. - person Albert Wiersch; 25.10.2018
comment
Для многих собственных приложений Windows, если они хотят использовать веб-представление, IE автоматически переключается в режим IE7 (!) Даже сегодня в 2019 году. Из соображений совместимости. И в зависимости от того, сколько усилий разработчики вложили в свое выигрышное приложение (чем меньше, тем хуже), ваши заголовки и метатеги не улучшат ситуацию. И ни один из современных javascript не будет работать в этом компоненте веб-просмотра. - person Sergei Kovalenko; 26.11.2019
comment
Аббревиатура Эммета (!) из Visual Studio Code также будет вставлять метатег X-UA-Compatible. Введите ! и tap в пустой HTML-документ. Это как волосы в подаваемом супе. - person Martin Braun; 22.06.2021

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

person David    schedule 13.10.2014
comment
Да, это похоже на правильное использование, но в этой ситуации вы, вероятно, захотите поместить его в конфигурацию сервера или в заголовки сайта? stackoverflow.com/a/9338959/199700 - person Chuck Le Butt; 13.10.2014
comment
Также есть изменение, частично вызванное тем, что Microsoft немного устарела от просмотра в режиме совместимости. В дополнение к локальной интрасети, если в домене много поддоменов и приложений, добавление представления совместимости для поддомена теперь применяет его ко ВСЕМ домену (ранее оно применялось только к конкретному поддомену). Поэтому, если у вас есть хотя бы одно приложение, для которого это может потребоваться, вы должны сделать это для всех остальных, чтобы избежать проблем с поддержкой. - person kilkenny; 16.09.2015
comment
@ChuckLeButt, заголовки хороши, пока вы находитесь в сети, но если пользователь решит сохранить страницу локально, вам останутся только встроенные теги <meta>. Вот почему, как правило, рекомендуется дублировать важные заголовки как теги <meta>. - person ravilov; 24.04.2019

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

person Michael McGinnis    schedule 24.08.2015