Изъятие элементов из списка совместимости Internet Explorer 8

Источник: thevista

Привет, меня зовут Майкл Бенни и я работаю тестером сетевых возможностей Internet Explorer 8. В ходе разработки Internet Explorer 8 я отвечал за различные аспекты работы Compatibility View. Мы ранее обсуждали эту функцию и инструкции для владельцев сайтов, которые позволят избежать появления на сайте иконки Compatibility View. Есть еще один сценарий, о котором мы не упоминали: если сайт был добавлен посетителем сайта в список Compatibility View до того, как ваш сайт был обновлён, а теперь он готов для работы с IE8, как можно изъять сайт из этого списка, хранимого на сайте пользователя? Я хочу рассказать об одной функции, о которой мы еще не расказывали - возможности вырезать домены из пользовательского списка Compatibility View.

Краткое напоминание о том, что представляет собой режим Compatibility View: по умолчанию Interner Explorer 8 ипользует режим визуализации, который наиболее совместим с утвержденными веб-стандартами. Такая конфигурация может вызвать проблемы при работе с сайтами, ожидающими менее интероперабельного поведения от IE. Как у администратора сайта у вас есть множество вариантов на выбор, которые позволят вам убедиться, что пользователям IE8 будет комфортно работать с вашим сайтом - использовать ли преимущества улучшений в области поддержки стандартов в IE8, или использовать заголовок "X-UA-Compatible" с целью уведомить IE8 о том, что следует отображать содержимое так, как это бы сделал IE7. Об этом вебмастеры просили нас чаще всего.

У пользователей также есть возможность снизить число проблем с совместимостью, с которыми они могут столкнуться при обычном просмотре сайтов с отключенной опцией X-UA-Compatible. Они могут выбрать вариант просмотра сайта в режиме Compatibility View или режиме эмуляции IE7, нажав соответствующую кнопку в адресной строке. Internet Explorer 8 запоминает нажатия кнопки Compatibility View для каждого домена, чтобы обеспечить комфортный опыт при повторном посещении сайта. Эти домены находятся в реестре Windows по адресу HKCU/Software/Microsoft/Internet Explorer/Browser Emulation/.

Когда сайт находится в пользовательском списке Compatibility View, то в качестве стандартного режима визуализации будет установлен режим IE7 Emulation, что также повлияет на строку агента, используемого для запрашиваемых страниц. Как администратор вы всегда можете контролировать, как отображается ваш сайт. Используя тег X-UA-Compatible, вы можете изменить состояние режима Compatibility View у клиента и чётко указывать, в каком режиме должен отображаться ваш сайт. Администраторы сайта также могут развернуть использование заголовка X-UA-Compatible на большем количестве страниц, равно как HTTP-заголовок (пример - ISS и Apache). Вы также можете пойти на еще один шаг, используя заголовок X-UA-Compatible, чтобы удалить домен из пользовательского списка Compatibility View. Вот, что нужно для этого сделать...

Чтобы удалить домен из списка, пользователь должен сначала зайти на сайт, на котором используется мета-тег или заголовок X-UA-Compatible. Наличие тега IE8 <META> на самом деле запускает процесс очистки списка, но это еще не всё. Следующий шаг - найти файл под названием IEStandarts.xml, находящийся в корневой папке домена. Сначала IE посылает запрос HTTP HEAD, чтобы узнать, присутствует ли этот файл в корневой папке. Его отсутсвие будет означать, что сайт всё еще находится в пользовательском списке. Если же заголовок HEAD вернётся с успешным результатом, то IE произведёт запрос HTTP GET к файлу. В самом файле присутствие тега "IE8StandartsMode" говорит о том, что данный сайт готов к удалению из списка. Вот пример правильной серверной конфигурации для сайта example.com:

Установим значение заголовка X-UA-Compatible для активации режима IE8:

Код:
<meta http-equiv= "X-UA-Comapatible"> content= "IE=EmulateIE8"

Разместим файл в корневой папке домена example.com:

Код:
http://example.com/iestandarts.xml

Файл должен содержать корневой XML-элемент, названный IE8StandartsMode:

Код:
<IE8StandartsMode/>

Администраторы сайтов должны также знать, что данный эффект также влияет и на все поддомены. Таким образом, если пользователь посетит страницу support.example.com на сайте, настроенном, как показано выше, но там будет еще один поддомен, например, mail.example.com, который всё еще должен прислушиваться к пользовательскому желанию просматривать сайт в режиме Compatibility View, то поддомен mail будет использовать режим визуализации IE8.

Элементы списка Compatibility View отражают весь домен, например, example.com, а не поддомены наподобие support.example.com и mail.example.com. IE должен обрабатывать запросы на удаление из источника, который отражает весь домен, иначе можно столкнуться с побочными эффектами в отношении поддоменов. Для примера представим, что сайт example.com находится в пользовательском списке Compatibility View. Дальше с поддоменом support.example.com была проделана большая работа по обеспечению поддержки IE8, при этом используется HTTP-заголовок или метатег, указывающий, что эту часть сайта лучше всего отображать в режиме стандартов IE8. Сайты example.com и mail.example.com не были обновлены. Если бы IE принимал решение по удалению сайтов из списка совместимости Compatibility View, основываясь только на присутствии HTTP-заголовка или мета-тега на сайте support.example.com, это могло бы привести к проблемам совместимости с сайтами example.com и mail.example.com. Проверка присутсвия файла IEStandarts.xml в корневой папке домена решает эту проблему, требуя некоторой авторитарности для удаления элемента из списка. Таким образом, взаимодействие пользователей IE с этим сайтом будет максимально комфортным.

Получение файла IESettings.xml происходит анологично тому, как IE запрашивает иконку сайта для доменов, но мы хотели решить проблему перегрузки серверов. Чтобы избежать многочисленных запросов от IE8 к серверу при просмотре страницы с установленным тегом X-UA-Compatible, мы активировали 30-дневный период таймаута со времени последнего обращения к сайту. Этот 30-дневный таймаут также используется, когда пользователь сам добавляет сайт в список совместимости, так что не волнуйтесь, если вы всё еще видите запросы Compatibility View после развёртывания данного файла в корневом домене.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=22619