Изъятие элементов из списка совместимости Internet Explorer 8
Привет, меня зовут Майкл Бенни и я работаю тестером сетевых возможностей Internet Explorer 8. В ходе разработки Internet Explorer 8 я отвечал за различные аспекты работы 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, то в качестве стандартного режима визуализации будет установлен режим
Чтобы удалить домен из списка, пользователь должен сначала зайти на сайт, на котором используется мета-тег или заголовок 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 после развёртывания данного файла в корневом домене.
Майкл Бенни (Michael Benny),
тестер Internet Explorer
Источник:
Перевод: Zloy Kak Pё$
По теме
- Еще пару слов о защите пользователей IE9 от отслеживания
- [Temp] Бенчмарк HTML5 Blizzard: проверьте аппаратное ускорение вашего браузера
- [Temp] Работаем с закрепление сайтов
- Блог IE в 2010: на связи с вами
- С новым аппаратно-ускоренным годом!
- HTML5: экспериментальный и готовый к использованию
- Доступно декабрьское накопительное обновлениие безопасности для IE
- IE9 и конфиденциальность: введение в защиту от слежения
- Более быстрый и умный список Compatibility View List в IE9
- Субпиксельные шрифты в Internet Explorer 9