Как IE8 определяет режим документа

В этой статье описывается, как IE8 определяет, какой из режимов документа, например, Quirks (Совместимый) или Standards (Стандартный) , использовать для отображения веб-узлов. Понимание этого важно как для разработчиков, так и для пользователей.

Определение связано со списком просмотра в режиме совместимости, который мы недавно обновили. С момента выхода IE8 список сократился более чем на 1000 веб-узлов, с 3100 до 2000. Мы продолжаем сотрудничать с разработчиками веб-сайтов и комитетами стандартов и ожидаем увидеть дальнейшее сокращение списка просмотра в режиме совместимости (CV).

Дизайн, управляемый данными

Прежде чем мы углубимся в рассмотрение технических подробностей, я хотел бы поделиться некоторой информацией, которую мы используем при проектировании функций совместимости.

clip_image001

Взглянув на описание типа документа (doctype) и метатег X-UA-Compatible и заголовок тысяч узлов с высокой посещаемостью по всему миру (таких как qq.com, netlog.com и других в исходном списке CV), можно сделать следующие выводы:

· 26% веб-узлов, таких как amazon.com, tworld.co.kr и unibanco.com.br, работают в режиме Quirks.

· 41% веб-узлов имеют описание типа документа Transitional, что в большинстве случаев приводит к работе в режиме Almost Standards.

· В код 14% веб-узлов добавлен метатег X-UA-Compatible или HTTP-заголовок ответа, приводящий к работе в режиме IE7 Standards.

И вот, почему так происходит: разработчики большинства веб-узлов с высокой посещаемостью желают, чтобы их сайты отображались правильно в наибольшем количестве браузеров, и поэтому они пишут их для работы в режиме Quirks. Многие веб-сайты были разработаны специально для IE7, а многие инструменты разработки, такие как Aptana Studio и Expression Web, добавляют описание типа документа Transitional по умолчанию:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN» «https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»>

Другими словами, миллиарды страниц написаны для режимов Quirks, IE7, Almost Standards или Standards. IE должен поддерживать все эти разновидности веб-платформы, чтобы обеспечить высокий комфорт в работе пользователям по всему миру.

Учитывая это, мы разрабатывали IE8 с учетом нескольких принципов:

1. По умолчанию отображать веб-узлы в наиболее соответствующем стандартам режиме.

Как было сказано в предыдущих статьях, мы обратились к проблеме совместимости и решили по умолчанию отображать веб-узлы в режиме, наиболее соответствующем стандартам.

2. Пользователи ожидают, что их веб-страницы будут просто работать.

Небольшое число пользователей позаботится о том, чтобы веб-узел, спроектированный для работы в режиме IE7 Standards, работал в более отвечающем стандартам режиме IE8. Для остальных существуют Параметры режима представления совместимости.

Лучше всего, чтобы страница сразу работала так, как этого хотел бы веб-разработчик. Вот почему мы создали список просмотра в режиме совместимости. Также важно дать пользователям возможность исправлять работу веб-узлов, отсутствующих в списке, при помощи кнопки Просмотр в режиме совместимости.

3. Веб-разработчики управляют тем, как отображается их содержимое.

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

Например, некоторые веб-узлы содержат как страницы, написанные для режима Quirks, так и для IE7 Standards. Когда IE считывает заголовок X-UA-Compatible со значением EmulateIE7, он отображает каждую веб-страницу в соответствии с режимом Quirks или IE7 Standards.

4. Дать веб-разработчикам инструменты и время на переход к режиму IE8 Standards.

В IE8 появился метатег X-UA-Compatible и заголовок, чтобы предоставить разработчикам время на перевод их веб-узлов в режим IE8 Standards. Как было сказано выше, многие веб-узлы уже воспользовались этим механизмом, чтобы их содержимое отображалось в режиме IE7 Standards.

Диаграмма, иллюстрирующая, как IE8 определяет режим документа

Зная принципы, приведенные выше, вы можете запомнить четыре правила, согласно с которыми IE обрабатывает описание типа документов, X-UA-Compatible метатег и заголовок, Средства разработчика и Параметры режима представления совместимости:

1. Настройки, указанные в Средствах разработчика, отменяют все режимы документа для всех открытых веб-страниц.

2. Метатег X-UA-Compatible и затем заголовок отменяют все параметры режима представления совместимости и описание типа документа, за исключением значений X-UA-Compatible EmulateIE7 или EmulateIE8.

3. Указанные пользователям параметры режима представления совместимости отменяют список просмотра в режиме совместимости Microsoft.

4. Если ни одно из этих правил неприменимо, описание типа документа определяет, отображать ли документ в режиме IE8 Standards, IE8 Almost Standards или Quirks Mode.

 

MarcSil_IE8_Document_Mode_2

Совместимость и совместная работа сложны. Чтобы облегчить работу разработчикам и пользователям, нам бы хотелось видеть переход веб-узлов со старых режимов браузера к новым. Мы признаем, что выбор режима остается за разработчиком. Мы рады возможности работать с веб-узлами и комитетами стандартов для продолжения совершенствования поддержки стандартов в IE.

Марк Силби (Marc Silbey),

руководитель команды разработчиков Internet Explorer

Comments

  • Anonymous
    August 11, 2011
    нужен всего один режим совместимости : EmulateGoogleChrome. Пока этого не будет, будут только плодиться хаки для IE 8,9,10,11....