...

пятница, 8 ноября 2013 г.

IE11: Compatibility List vs. X-UA-Compatible

Вчера я опубликовал топик, в котором описал некоторые удивительные решения, которые приняла компания Майкрософт при выпуске новых версий своего так сказать браузера Internet Explorer. Если вкратце, это:


  • введение режимов совместимости со всеми ранее выпущенными версиями браузера вплоть до 5.5;

  • решение эмулировать эту совместимость путём тщательного портирирования старых багов;

  • отказ от указания имени браузера в юзер-агенте на фоне заявлений о том, что детектировать IE11 по юзер-агенту не надо;

  • слом обратной совместистимости между последним Developer Preview и RTM релизом;

  • разное поведение, вплоть до падения в некоторых ситуациях, одного и того же браузера под разными версиями операционной системы;

  • поддержание глобального списка совместимости, в который попадают те сайты, которые, по мнению Майкрософт, должны показываться в одном из режимов совместимости IE;

  • формирование этого списка на основе статистики по кликам пользователей preview-версий браузера в кнопку «Compatibility View»;

  • приоритет этого списка над заданной вебмастером метой X-UA-Compatible в RTM-сборке IE11.




Появление этого топика вызвало вал добродушных комментариев, начиная от «автор истеричка» (как будто какой-то из изложенных фактов становится от этого менее весомым) до «Столько бреда, я давно не читал. Смысла даже нет проходиться по всей статье и указывать на ошибки автора». На просьбу таки указать ошибки в изложении было почему-то только отмечено, что последний из приведённых пунктов — а именно, приоритет списка совместимости над X-UA-Compatible — не соответствует действительности (странно, почему же тогда «ошибки» во множественном числе, уважаемый SowingSadness?). Далее в треде от меня потребовали предоставить доказательства этого пункта, заявив, что я либо ошибся, либо просто его придумал.

Подопытная сборка: Windows RT 8.1 на планшете Microsoft Surface. Версию и сборку IE11 см. на скрине в начале поста.


HTML-код, на котором проверялась работа мета-тэга:



<!DOCTYPE html>
<html>
<head>
<title>Compat View Test</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
<body>
<h1>Hello, Habr!</h1>
</body>
</html>


Открываем эту страницу с дев-сервера, который живёт на домене из списка совместимости Microsoft (имя домена я не могу привести по понятным причинам):



Меняем .ru на .net



Проверяем, работает ли мета. Меням content на «IE=EmulateIE7»:



На .ru при этом ничегошеньки не меняется, IE11 остаётся в режиме IE10.


Для чистоты эксперимента снимаем галочку «Use Microsoft compatibility lists»:




(обратите внимание, настройка показа интранета в Compat View отключена для чистоты эксперимента, хотя по факту она ничего не меняет)


Вуаля, .ru теперь управляется метой:



Передаю привет и искреннее восхищение разработчикам из Редмонда, а также местным экспертам с мировым именем.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:



Комментариев нет:

Отправить комментарий