Веб-разработчик, облачные технологии
25,7
рейтинг
13 января 2009 в 07:51

Разработка → IE8: наиболее полное описание нововведений для программиста (и не только)

Ниже представлен оригинал моей статьи принятой для публикации в отличный компьютерный журнал C`t, который, к сожалению, не выжил на рынке и пока пребывает в весьма подвешенном статусе. Статья не была опубликована из-за того, что выпуски больше не выходят. Поэтому я решил опубликовать ее на Хабре, благо она отлично попадает в формат.

Хотел бы сразу отметить, что статья достаточно объемная и часть информации уже была опубликована мной на Хабре. Цель данной статьи объединить максимальное количество информации про новую версию Internet Explorer и представить ее в приемлемом объеме.

В комментах принимаю замечания и исправления.

Введение


Браузер Internet Explorer имеет длинную историю, начавшуюся в 1995 году, когда в августе этого года компания Микрософт выпустила его, лицензировав у Spyglass, Inc. С тех пор прошло уже более 10 лет и Internet Explorer успел покорить мир, завоевав абсолютное большинство пользователей, а версия его вот-вот сменится на номер 8.

Несмотря на широкое распространение, Internet Explorer пользуется дурной славой у разработчиков web-проектов. Виной тому множество факторов, основными из которых, на мой взгляд, являются вялое внедрение стандартов консорциума W3C и очень медленный переход на новые версии среди пользователей. Из-за того, что огромное количество пользователей все еще использует устаревшие браузеры, web-разработчикам приходится поддерживать и их, внедряя в свои коды всяческие трюки и так называемые хаки, чтобы один и тот же сайт выглядел одинаково как в браузерах Firefox, Safari и Opera, так и во всех распространенных версиях Internet Explorer.

Однако, с выпуском восьмой версии браузера, Микрософт, похоже, предпринимает попытки сгладить отношение разработчиков к своему детищу, предлагая им долгожданную поддержку стандартов, не оставляя в тоже время поддержку предыдущего кода, написанного под старые версии.
Эта статья призвана показать, что же нового появится в Internet Explorer 8 для разработчиков, что изменится и как использовать некоторые новые и полезные вещи которые предлагает нам этот браузер.

История браузера Internet Explorer для программиста


Выйдя в 1995 году первая версия IE не получила широкого распространения, как впрочем и версия вторая, которая включала в себя поддержку кроме SSL, cookies, такие вещи как VRML и RSA. Третьей версии, которая вышла в 1996 году, удалось добиться большего. Она получила поддержку CSS, ActiveX, фреймов и Java-аплетов. В четвертой версии появились DHTML и PNG. Пятая версия принесла поддержку XML/XSLT, улучшенную поддержку CSS версии 1 и 2, favicon, HTML Application. Особенно полезным окажется введение XMLHttpRequest, который гораздо позднее даст старт повсеместно используемой технологии AJAX. Шестая версия оказалась менее щедрой на нововведения: улучшена поддержка DHTML, частичная поддержка CSS level 1, DOM level 1 и SMIL 2.0. Вместе с тем, шестая версия, похоже, стала самой уязвимой в плане безопасности версией браузера. В седьмой версии Internet Explorer добавилась поддержка IDN, незначительно была улучшена поддержка CSS, DOM и HTML, улучшилась поддержка компрессии страниц через Gzip и deflate. Однако одним из главных исправлений стала долгожданная поддержка прозрачности для PNG-файлов.

Восьмая версия


Первая публичная бета-версия Internet Explorer 8 появилась в марте 2008 года. Сообщалось, что новая версия получит переписанный с нуля движок рендеринга, что команда разработчиков нацелена на поддержку стандартов, таких как CSS 2.1, CSS 3 и HTML 5, что будут исправлены множество ошибок предыдущих версий. И ожидания сбылись, новая версия содержала в себе многочисленные изменения в HTML и CSS, такие как введение тега abbr, поддержка автоматически генерируемого контента CSS, правила CSS display: table, paged media, DOM Storage, XDM, API селектров и многое другое. Кроме того, появилась поддержка Data: URI и XDomainRequest для кросс-доменного обмена, добавились новые функции в DOM, заявлена поддержка спецификации ARIA.
После знакомства с новой версией и ее нововведениями, складывается мнение, что компания Микрософт, наконец-то обратила свое внимание на web-разработчиков и взялась основательно переделать свой браузер к лучшему.

Механика восьмой версии. Прикидываемся седьмой версией


Новая версия рендеринга Internet Explorer может работать в трех режимах:
  • Quirks и Strict – работают как и в IE7, в зависимости от DOCTYPE включается quirks-режим;
  • Standards – основной режим IE 8, в котором максимально широко реализованы стандарты.
Команда разработчиков предусмотрела принудительную поддержку того или иного режима для ваших старых или новых страниц, которые нацелены на отображение в предыдущих версиях браузера и должны нормально отображаться в 8 версии.
Для того чтобы задать необходимый вам режим нужно добавить на страницу meta-тэг следующего содержимого:
<meta http-equiv="X-UA-Compatible" content="IE=8" />

Здесь, content – обозначает режим, в котором будет отображаться страница. Основные значения content следущие:
  • «IE=7» — включает режим Strict в котором рендерятся все страницы;
  • «IE=EmulateIE7» — включает режим совместимости с IE7, в котором в зависимости от DOCTYPE будет применяться либо стандартный для IE7 режим рендеринга (Strict), либо quirks-режим (Quirks);
  • «IE=EmulateIE8» — страница форсируется в режим «IE8 Standards» вне зависимости от того, включен ли режим совместимости «Compatibility View» в браузере пользователя, а quirks-страницы отображаются в Quirks-режиме.
  • «IE=8» — включается режим максимального соответствия стандартам «IE8 Standards».
Кроме того, значения content не ограничиваются перечисленными режимами. Так можно указать значения для любых других браузеров:
<meta http-equiv="X-UA-Compatible" content="FF=3" />

Вдобавок к этому, у параметра content существует значение «edge», которое позволяет указывать на поддержку максимально старшей версии браузера:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Кроме указания тега «meta» есть еще один способ управлять режимом браузера – это передача http-заголовка:

X-UA-Compatible: IE=EmulateIE7

Механизмы обеспечения безопасности


Защита памяти средствами DEP/NX


Функция «Включить защиту памяти для снижения риска атаки из интернета» доступна и в седьмой версии браузера, но она не включена по умолчанию. Правда, на 64-битных платформах этой функции нет, но только потому, что все процессы в 64-битных версиях Windows защищены через DEP. Теперь же, данная функция будет включена по умолчанию. Напомню, что DEP/NX позволяет предотвратить выполнение кода, который помечен как данные. Таким образом, отсекается целый пласт атак, таких как переполнение буфера.

Улучшения в ActiveX


В восьмой версии Internet Explorer элементы ActiveX могут быть установлены только для определенного пользователя (Per-User ActiveX), что снижает риск заражения, при учете того, что пользователь не работает под правами администратора. В этом случае под ударом находится только профиль одного пользователя и ничего больше.
Per-Site ActiveX — новая техника, которая позволяет задать элементу ActiveX возможность исполнения только на одном единственном (вашем собственном) сайте и нигде больше. Пользователь также может разрешить использование, скажем Silverlight, только на том сервере, где он первый раз понадобился. Как и все остальное, управление механизмом установки ActiveX будет доступно для администраторов через групповые политики.

XSS-фильтр


Самое интересное, на мой взгляд, нововведение — это встроенный XSS-фильтр, который позволяет защитить пользователя от «Cross-Site Scripting»-атак. Чтобы хотя бы приблизительно оценить величину угрозы от XSS-атак можно перейти по адресу XSSed.com, и посмотреть какие, не самые мелкие публичные ресурсы, подвержены этим атакам. Любой пользователь потенциально может оказаться жертвой, просто перейдя на эти ресурсы, и сейчас число таких обнаруженных «дырявых» сайтов перевалило уже за 20 тысяч.

XSS-фильтр Internet Explorer 8 направлен против xss-атак т.н. типа Type1. Согласно информации с Wikipedia атаки такого типа самые распространенные.

Для тех сайтов, которые по какой-то причине не хотят позволить пользователю включить защиту против XSS на их ресурсах доступна опция в заголовках HTTP:

X-XSS-Protection: 0

Она может понадобиться тем, кто в своих проектах использовал техники схожие с XSS-атаками.

Другие изменения безопасности


  • добавлена новая функция toStaticHTML, которая позволит избежать внедрения опасного кода на страницы путем форматирования html-тегов, эта функция делает тоже, что и функции библиотеки Microsoft Anti-Cross Site Scripting Library;
  • Internet Explorer 8 реализует функции ECMAScript 3.1 для работы с JSON. Для обеспечения безопасности, объект для работы с JSON содержит функцию parse, которая, так же как и toStaticHTML, надежно форматирует потенциально-опасный текст;
  • в новой версии Internet Explorer браузер содержит улучшения в т.н. механизме MIME-sniffing. Этот функционал позволяет определять браузеру содержимое страницы не по «content-type», а по содержанию. Нередко такое определение позволяло внедрить опасный код. Теперь, например, при «content-type: image/*» не будет рендерится вложенный html- или скрипт-код. Для управления фильтром разработчик может воспользоваться новым параметром authoritative и указать «Content-Type: text/plain; authoritative=true;» и в таком случае IE8 не будет пытаться определить тип содержимого, выведя его согласно указанию в «Content-Type»;
  • новые параметры для HTTP-заголовков X-Download-Options: noopen и Content-Disposition: attachment; filename=untrustedfile.html позволяют заставить браузер сохранить содержимое вместо его отображения. Это может понадобиться в тех случаях, когда web-приложению требуется передать пользователю страницу с небезопасным содержимым. В случае сохранения его на клиенте и последующем открытии такие страницы не будут работать в контексте сервера, что оставит его в безопасности;
  • в контроле File Upload теперь в целях безопасности изменили статус поля ввода на read-only. В дополнение к этому, с той же целью, IE8 теперь не будет отправлять полный путь файла, вместо этого отправляться будет только его имя.

Изменения касающиеся CSS


CCS-выражения


Одним из принципиальных решений команды разработчиков Internet Explorer в плане поддержки CSS является отказ от так называемых CCS-выражений (CSS expressions). Эти выражения позволяли интегрировать в CSS-код JavaScript-выражения для манипулирования содержимым css параметров. CSS-выражения в восьмой версии Internet Explorer будет отключены по умолчанию. В числе причин названы безопасность и высокая затратность в плане производительности. Однако поддержка CSS-выражений сохранится в режимах совместимости Strict и Quirks, для поддержки уже написанного кода.

Изменение в именовании свойств


Микрософт изменила порядок именования некоторых свойств CSS. Теперь все «нестандартные свойства» получают префикс "-ms-". Для того, чтобы полностью соответствовать CSS 2.1 в IE 8 такой префикс получили свойства подходящие под следующие условия:
  • если свойство — это расширение Микрософт (не определено в спецификации или модуле CSS);
  • если свойство — часть CSS-спецификации или модуля, которая не получила статус Candidate Recommendation от W3C;
  • если свойство только частично реализовывает свойство, определенное в спецификации CSS.

Вот список свойств, которые получили приставку "-ms-" (с указанием причины):
Property Type W3C Status
-ms-accelerator Extension  
-ms-background-position-x CSS3 Working Draft
-ms-background-position-y CSS3 Working Draft
-ms-behavior Extension  
-ms-block-progression CSS3 Editor's Draft
-ms-filter Extension  
-ms-ime-mode Extension  
-ms-layout-grid CSS3 Editor's Draft
-ms-layout-grid-char CSS3 Editor's Draft
-ms-layout-grid-line CSS3 Editor's Draft
-ms-layout-grid-mode CSS3 Editor's Draft
-ms-layout-grid-type CSS3 Editor's Draft
-ms-line-break CSS3 Working Draft
-ms-line-grid-mode CSS3 Editor's Draft
-ms-interpolation-mode Extension  
-ms-overflow-x CSS3 Working Draft
-ms-overflow-y CSS3 Working Draft
-ms-scrollbar-3dlight-color Extension  
-ms-scrollbar-arrow-color Extension  
-ms-scrollbar-base-color Extension  
-ms-scrollbar-darkshadow-color Extension  
-ms-scrollbar-face-color Extension  
-ms-scrollbar-highlight-color Extension  
-ms-scrollbar-shadow-color Extension  
-ms-scrollbar-track-color Extension  
-ms-text-align-last CSS3 Working Draft
-ms-text-autospace CSS3 Working Draft
-ms-text-justify CSS3 Working Draft
-ms-text-kashida-space CSS3 Working Draft
-ms-text-overflow CSS3 Working Draft
-ms-text-underline-position Extension  
-ms-word-break CSS3 Working Draft
-ms-word-wrap CSS3 Working Draft
-ms-writing-mode CSS3 Editor's Draft
-ms-zoom Extension  


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

Свойство filter


Изменения коснулись такого свойства, как filter. Ранее, к сожалению, синтаксис filter не соответствовал CSS 2.1. Например, в указанном коде запятые считались недопустимыми.
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2);

В новой версии браузера синтаксис filter приведен к соответствию требованиям спецификации CSS:
-ms-filter: «progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2)»;

нетрудно заметить, что в новом синтаксисе значение свойства взято в кавычки.

Поддержка CSS 2.1


Для более полной реализации CSS 2.1 добавлена поддержка следующих псевдо-классов:
  • :active (вместо частичной поддержки, будет полная)
  • :focus
  • :lang©
  • @page :first
  • @page :left
  • @page :right

Последние три не доступны в beta2, но будут добавлены в финальную версию. Кроме того добавлена поддержка следующих псевдо-элементов:
  • :before
  • :after

Следующие элементы будут поддерживаться в полном объеме вместо частичной поддержки либо добавятся:
  • list-style-type
  • background-position
  • font-weight
  • white-space
  • word-spacing
  • content
  • counter-increment
  • counter-reset
  • quotes
  • border-collapse
  • border-spacing
  • border-style
  • caption-side
  • empty-cells
  • bottom
  • display
  • left
  • right
  • top
  • z-index
  • orphans
  • page-break-inside
  • widows
  • outline
  • outline-color
  • outline-style
  • outline-width
  • box-sizing (элемент CSS 3)

Функции CSS


Помимо существующей поддержки функции url(), в восьмой версии будет добавлена поддержка еще двух функций counter() и attr().

JavaScript и AJAX в IE8


В помощь программистам команда разработчиков Internet Explorer внесла значительные изменения и нововведения в механизм JavaScript.

XDomainRequest (XDR)


XDR – это новый объект похожий на XMLHttpRequest, но который предназначен для обмена информацией через домены. Синтаксис XDR соответствует черновику W3C «Access Control for Cross-Site Requests».

Cross-document Messaging (XDM)


XDM – это еще одна технология, которая позволяет обмениваться текстовыми сообщениями фреймам с разных доменов, которые размещены на одной странице. Такой обмен происходит через HTML5-метод postMessage:
var testframe = document.getElementsByTagName('iframe')[0];
testframe.contentWindow.postMessage('Привет!');

Для того, чтобы получить такое сообщение документ во фрейме должен зарегистрировать обработчик сообщения «onmessage»:
document.attachEvent('onmessage',function(e) {

});


DOM Storage


DOM Storage – это механизм, который позволяет хранить на стороне клиента данные не прибегая при этом к механизму cookie. В отличие от cookie, DOM storage лишены целого ряда ограничений: размер сохраняемых данных значительно увеличен, данные DOM storage не отсылаются на сервер при каждом запросе, кроме того можно управлять тем, как сохраненная в DOM storage информация будет видна в других окнах.
В Internet Explorer реализовано три объекта по работе с DOM storage:
  • window.sessionStorage – предназначен для хранения данных на время существования вкладки браузера, данные доступны с разных страниц пока действует контекст вкладки. Данные не восстанавливаются если произошла исключительная ситуация или браузер был закрыт;
  • window.localStorage – предназначен для долговременного хранения данных (около 10 Мб) для каждого домена и субдомена, причем домены и субдомены могут получать данные друг друга, но при этом субдомены не могут получать данные другого субдомена;
  • объект Storage – реализует логику для работы как sessionStorage, так и localStorage, содержит необходимые методы, свойства и события.

Ниже приведен небольшой пример того как можно работать с DOM storage:
localStorage.setItem("name","Владимир");

var name = localStorage.getItem("name");

XMLHttpRequest


XMLHttpRequest получил новое свойство timeout, позволяеющее задавать количество миллисекунд, которое хост будет ждать ответа, после истечения которых произойдет событие ontimeout:
var xhr = new XMLHttpRequest();
xhr.timeout = 10000;
xhr.ontimeout = onTimeout;

function onTimeout ()
{
  alert("timeout!");
}

Новые функции


В JavaScript Internet Explorer 8 также были добавлены несколько функций:
  • ToStaticHTML – форматирует исходную строку так, что заменяет строки с тегами на безопасные строки для предотвращения XSS-атак;
  • toJSON, JSON.parse, JSON.stringify – служат для работы со строкой содержащей json-данные, приводят объект. Синтаксис функции базируется на ECMAScript 3.1.


Инструмент Developer Tools. Profiler JavaScript.


В восьмой версии Internet Explorer к радости программистов добавлен инструмент, который способен побороться с широко распространенным дополнением Firebug для браузера Firefox. Этот инструмент называется просто Developer Tools и представляет собой следующую панель:

Панель содержит следующие инструменты и функции:
  • инспекция html-кода страниц;
  • просмотр и редактирование применяемых стилей;
  • выделение элемента по наведению курсора мыши;
  • встроенный мощный отладчик JavaScript-кода;
  • блокировка скриптов, css, всплывающих окон;
  • вывод на отображаемую страницу информации о Id и классе элементов, ссылках;
  • подсветку элементов по типу, по позиционированию и по другим параметрам;
  • управление изображениями на странице, просмотр информации;
  • встроенную динамическую линейку;
  • встроенный color picker;
  • ссылки на валидацию.

Кроме того, эта панель содержит замечательный функционал – профайлер JavaScript кода:

Этот инструмент позволяет легко отследить узкие места в вашем JavaScript-коде и тем самым повысить производительность сайта и скорость загрузки страниц.

Заключение


В этой статье я попытался рассмотреть новые возможности Internet Explorer, которые он предоставляет программисту. Как оказалось, новая версия браузера несет в себе массу изменений, улучшений, исправлений и добавлений для разработчиков web-проектов. На момент написания статьи последней версией Internet Explorer 8 оставалась beta2, но уже по ней заметно, что компания Микрософт уделила своему браузеру самое пристальное внимание и значительно усовершенствовала его. Для разработчиков важно быть в курсе тенденций в web. Разработка новой версии популярного браузера – это одна из таких тенденций. Надеюсь, что приведенный материал помог разработчикам пополнить свои знания и быть в курсе некоторых новых возможностей, которые предложит финальная версия Internet Explorer 8.
Владимир @XaocCPS
карма
776,6
рейтинг 25,7
Веб-разработчик, облачные технологии
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (132)

  • +7
    Ой, порадовал статьёй, спасибо 8-)
    Наконец-то полное описание, без рюшечек, и поросячьего визга 8-)
  • –52
    В IE8 есть встроеный даунлодер? (в смысле нормальный загрузчик)
    Кликом правой кнопки можно заблокировать банеры?
    Можно ли использовать свой шаблон стилей для какой нить странички?
    если нет, то о каких нововведениях идет речь? Закрывание дырок открытых в ранних версиях?
    • +11
      от куда вы все беретесь…
      • –21
        из интернета
      • НЛО прилетело и опубликовало эту надпись здесь
    • +1
      trollim.ru ---->
    • +3
      Читай название статьи. Там есть фраза «для программиста». Все, приведенные тобой недостатки никоим образом не мешают программисту.
      • –14
        IE8 браузер для програмистов?
        • 0
          ну вообшем-то да :) я, к примеру, отношусь к нему не как к браузеру, а как к набору интерфейсов и разных библиотек:
          msdn.microsoft.com/en-us/library/aa155133.aspx
          msdn.microsoft.com/en-us/library/aa741322(VS.85).aspx

          ну знаете, быстро там отрендрить в моем приложении кусочек html-кода, сделать визуальный WYSIWYG редактор, интерфейс раньше было удобно на нем клепать, никто даже заподозрить не мог, что это html и т.д.
          • –2
            «Клепать» и «лабать» — самые точные определения к такому подходу
        • 0
          И, кстати, поскольку IE очень уж дружелюбен для программистов, все те вещи о которых вы написали выше, легко делаются в течении одного рабочего дня. И менеджер закачки свой можно встроить, и стили подменять, и банеры резать. Система «плагинов» развита как нигде в другом месте.
          • +1
            сейчас вас запинают любители firefox, поскольку для ff аддонов (не плагинов) на несколько порядков больше, как ни крути, а ведь они делают именно то что и плагины в ie
            • 0
              Ну, это естественное явление (я про количество аддонов) :) просто «уровень вхождения» в разработку под IE существенно выше, чем в разработку аддонов под FF, но в целом, IE предоставляет больше возможностей, как ни крути.
          • –3
            если это все делается в течении одного рабочего дня, то почему у юзверей до сих пор нет нормального браузера, и им приходится открывать IE только лишь для того что бы скачать оперу или файрфокс?
            • +2
              Как нет, а как же древнейший Maxthon, к примеру? ) И менеджер закачек удобный, и рекламу вырезает, и задолго до IE7 научился показывать окна в вкладках, и скины имеет, и даже как Google Chrome не умирает, если у вас зависает одна из страничек.

              и не нужно говорить не правду, якобы никто не пользуется IE.
            • +3
              Я не зверь и пользуюсь IE
            • +2
              IE — Это браузер, почитайте определение браузера в педивикии хотя бы. То что вы описываете называется комбайном.
              • –7
                то что я описал назвается Opera или FF
                а то что делает MS назвается заглушка.

                так как коментировать могу не чаще чем раз в 5 минут. то на пост lifestar отвечаю тутже
                — попробуйте Оперу или ФФ, Вам понравится. через минут 10 у вас начнется отвыкание от IE а еще через 10 вы окончательно забудете IE.

                int80h — ну почему же вот например lifestar пользуется. но тренды говорят что скоро Вас станет меньше.
                • +4
                  Вы ставили FF? Где там из коробки даунлоад менеджер, блокировшик баннеров и возможность подцепить свой CSS?
                • 0
                  как почему — вы так написали :)

                  и кого это «Вас»? я вообще пользователь мака и Safari :)
            • 0
              www.w3schools.com/browsers/browsers_stats.asp
              По приведенной ссылке можно убедиться что боьшинство посетителей сайта W3C — пользователи MSIE. И можно предположить что этот сайт посещают исключительно web-разработчики.
              • 0
                ага, а большинство посетителей хабра пользователи ФФ
                • 0
                  Ну да конечно. Здесь для многих карма Хабра важнее, валидатора w3c
    • +1
      А где он есть (нормальный загрузчик)? В смысле в каком браузере? Ну, как минимум, чтобы позволял ограничивать скорость закачки
      • +1
        Для Лисы был какой-то даунлоадер, правда сам не щупал. Но сомневаюсь, что там можно квотировать полосу пропускания или выставлять какие-то приоритеты.
        • 0
          Я щупал, во второй у меня стоял, потом все равно на внешний через flashgot перешел Приоритеты для очереди можно было ставить, если ничего не путаю :)
    • +1
      Есть такой замечательный плагин под IE, IE7 pro, который существенно расширяет функционал IE, в свое время поставил его из-за наличия в нем жестов мышью как в Опере, но помимо всего прочего имеет менеджер закачек, поддерживает UserJS аля GreaseMonkey и еще умеет кучу всего, к тому же работает и в IE8.
      • 0
        * режет баннеры
      • 0
        Да класная штука, сейчас попробовал и в совокупности с ie8 все что надо есть.
    • 0
      грузил и как знал, что без троллей не обойдется…
  • +3
    Скорей бы IE6 умер, скорей бы… :)
    В 8-й версии напрягает слишком долгий вывод html-кода страницы, ну и дебаггер на «тяжёлых» страницах тормозит тоже не по-детски
    • 0
      щупали IE8 под win7? ощутимые изменения, особенно в developer tool
      • +4
        Я лучше девушек пощупаю, а в случае IE8, подожду выхода финальной версии
    • –2
      Да пускай живет, но только полную поддержку заголовка «X-UA-Compatible: IE=IE8» пускай сделают :)
      • –2
        Да хоть IE=IE10. Только толку от этого никакого.
  • 0
    meta http-equiv=«X-UA-Compatible» content=«FF=3»
    После прочтения остался вопрос относительно этого. Проясните пожалуйста, поддерживает ли Фаерфокс этот метатег.
    • +3
      нет конечно :) но тег допускает такую реализацию со стороны Mozilla, если она того захочет
      думаю, глупо было бы делать тег без возможности поддержки его другими браузерами
      • 0
        А зачем FF его поддерживать? Имхо этот костыль нужен только самим MS
        • +1
          согласен, потребность есть только у ie
        • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Продолжите, пожалуйста, вашу мысль, я не до конца уловил смысл. Тот факт, что для FF есть специфичные свойства, не требует объявления поддерживаемой версии браузера. Прочие браузеры будут эти свойства игнорировать, а Лиса интерпретирует их должным образом. Для чего метатег?
            • 0
              Хтябы для того чтобы определить какой в будущем -moz-border-radius или border-radius, допустим с выходом стандартов там будет другое поведение.
              • 0
                Вот и пришли к тому за что ругали в своё время MS
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                О  CSS3 я ниже высказывался, нет в этом нужды
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    Я верю, что к наспуплению времён будничного использования CSS3 мы увидим четвёртую, а то и пятую версию FF. Вторая версия будет вопиющим анахронизмом.
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        Седьмой останется :) А шестой и сейчас анахронизм. Пусть и не вопиюший
                        • НЛО прилетело и опубликовало эту надпись здесь
                          • 0
                            Полностью согласен
      • 0
        Хм… а как это должно выглядеть, если и тот и другой браузер «поддерживаются» кодом? Через запятую, два заголовка подряд или как? Сам IE в какой комбинации ожидает IE= и FF=?
        • 0
          допускается такой синтаксис
          />
          • +1
            * meta http-equiv=«X-UA-Compatible» content=«IE=8;FF=3;OtherUA=4»
        • +1
          Мне показалось, что FF=3 означает, что ИЕ будет вести себя как фаерфокс 3 и код, написанный под фф, будет работать под ИЕ. Я рано обрадовался?(
          • 0
            рано :)
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              если не учитывать множественные визуальные CSS3-свойства которые уже есть в FF, но пока не светят в IE
              • НЛО прилетело и опубликовало эту надпись здесь
                • 0
                  opacity — это CSS3-свойство, наверное, из-за этого до сих пор не включена полная поддержка
    • 0
      кстати, думаю, такой метатег может найти и другие применения для разработчиков
      этим тегом они могут помечать целевую платформу и клиентские расширения (те же плагины для FF) смогут как-то особенно реагировать на него

      к примеру
      • +1
        Если плагин уже запущен, ему по идее до фени, что за метатеги в коде прописаны :)

        В отношении Лисы, как мне кажется, нет необходимости указывать в метатегах совместимые версии. Даже когда широко распространится CSS3 и первая версия FF уже не будет адекватно отображать страницы — проблемы как таковой не будет. Пользователи этого браузера привыкли к своевременным обновлениям и устаревшая версия скорее всего использоваться уже не будет.
        • 0
          да, согласен, пользователи FF (в больше части) по умолчанию получают метатег
          />

          :)
          • 0
            * meta http-equiv=«X-UA-Compatible» content=«FF=edge»
  • 0
    Кстати, а как IE сейчас реагирует на <?xml version=«1.0» encoding=«utf-8»>? Или это уже давно пофиксили?
    • НЛО прилетело и опубликовало эту надпись здесь
  • –3
    Да, в этой версии костылей гораздо больше…
  • +4
    Правильно писать cookies, а не coockies.
    • +2
      Алсо, статья отличная. Спасибо за публикацию.
    • +1
      Блин, и где я у вас эту опечатку увидел? Прошу прощения, видимо ложная тревога :)
      • +2
        это я только что поправил, спасибо
  • +1
    Developer Tools есть и для осла 7(Developer Toolbar) хотя его и приходится скачивать отдельно с сайта мелкософта, а ещё там нет дебагера и профайлера.
  • –1
    > старые значения, хотя и будут считаться устаревшими,
    > будут поддерживаться в восьмой версии ради совместимости.
    > При разработке же нового кода для IE 8 следует использовать только новые именования.

    Когда МС поймут, что код пишется не под новую версию ИЕ, а для веба. Вместо того, чтобы нормально расширить возможности своего браузера, они дают нам вбыор, делать под старый ИЕ с глюками или под новый без глюков, но зато старые браузеры такое врятли откроют. Почемуто когда выходит новая версия Оперы или ФФ, максимум что приходится делать — подправить верстку под новые глюки, если такие имеются. А с выходом каждой версии ИЕ меньше чем на полную ревизию кода надеяться не выходит.
    • +2
      8 версия старается приближаться к стандартам, все нестандартное убрано под -ms. Это в том числе сделано для того, чтобы в 9 версии было уже легче и безпроблемнее. Вы же за стандарты? Если 8 будет соблюдать стандарты то вы запишите это в плюс или минус?

      и кстати, мне кажется, 8 версия в чем-то первая версия
      • +1
        Сдаётся мне, что с 9-й будет ещё интереснее ;-)
      • +2
        Да я мозгом то понимаю что это шаг в правильном напрвлении, что потом в будующих версиях, когда ИЕ6 и ИЕ7 уйдук как страшный сон мы все спасибо скажем, просто пока они не ушли это мягко говоря не очень удобный компромисс.
        • 0
          Будем надеяться на то что w7 быстро распространить ie8 в массы :)
        • 0
          IE7 — милый пушной зверёк, по сравнению с дырами, багами, и прочим мозгоутомлением в IE6.
      • 0
        Направление, в котором движется компания именно в этих продуктах (IE8 И Windows7) очень нравится. Действительно есть ощущение «новой волны».
    • 0
      >А с выходом каждой версии ИЕ меньше чем на полную ревизию кода надеяться не выходит.

      Вот вам как раз и дают возможность не делать срочную полную ревизию кода, скажем до того времени, пока доля IE 6 не станет пренебрежимо мала. Добавили один хидер или метатег и все, забыли про то, что есть IE8 с новым рендерингом. Потом не спеша подправили код, если необходимо (а может и для лисы вариант будет нормально отображаться), заменили хидер и всё.
  • 0
    Извините но сразу в глаза попало. «премлемом» У меня плохо с правописанием но кажется написано то неверно.

    За материал спасибо. Сохранил, позже ознакомлюсь ;)
  • 0
    Очень качественная статья. Спасибо.
    • 0
      Качественная но первые 5 абзацев смело можно было не писать.
      • 0
        это статья предназначалась для журнала, для Хабра, пожалуй, я бы их не написал :)
      • 0
        Думаю, что они написаны потому, что статья изначально готовилось то не для Хабра, а для более широкого круга читателей, менее искушенного. Ссори, не прочитал авторский коммент ниже.
  • 0
    осталась одна маленькая проблемка, какже заставить всех кто сидит на ie6 обновиться хотябы до 7…
    • 0
      для этого MS тоже прилагает усилия, например, обновление до 8 версии будет критическим по всем каналам: Windows Update, Microsoft Update, Automatic Update. Если обновление не отключать, то ie8 придет к вам сам. Достучаться до тех, у кого нет привычки обновляться лично мне кажется затруднительным.
      • 0
        какая привычка??) большая часть этих людей до сих пор сидит на XP SP1 и их компьютерщик отключил им обновление потому что винда там ломанная… сам видел… те у кого виндоус лицензионный тем не будет трудо обновиться, а как же тот самый большой процент с пираткой?? ( я имею ввиду тех кто не будет искать серийники и тд и тп)
        • 0
          мы же не будем обсуждать «ломаные» винды? :)
          кроме того, нормальный администратор самостоятельно может сделать автоматическое обновление до ie8, это обновление не требует подтверждение активации
          • 0
            Пусть MS напишет вирус, ломающий старые версии винды со старыми браузерами и включающий им обновление, или хотя бы качающий ie8 :)

            Я даже не буду возмущаться по поводу того, что «MS всякую заразу пишет» :)
          • 0
            Сижу на ломаной XP, прекрасно обновляется.
      • +1
        Всё делается гораздо проще. Просто большинству серьёзных сайтов нужно перестать поддерживать IE6. Реакция будет довольно предсказуемой — если не работает большинство сайтов в браузере, значит нужно либо качать новую версию, либо ставить другой. А то, что кто-то боится потерять пользователей — так это посредственные сайты, видимо.

        Вот что делать с корпоративными браузерами, под которых написана куча ActiveX и по этой причине их не обновляют на предприятиях, не знаю. Скорее всего тем пользователям нужно будет работать, а не на сайтах сидеть :) Но массово, думаю, обновляться начнут только тогда, когда перестанет что-то работать.
        • 0
          Действительно, «гораздо проще» :))))
        • 0
          вы предлагаете яндексу, майлу и корпорации зла поставить запрет на ie6? :-) честно мне такой кошмар снился, как я стаю перед директорами яндекса и объясняю им что надо закрыть доступ для ie6 :-)
          • 0
            сейчас всё больше используют js на новых проектах, и даже использование фреймфорков не спасает ситуация для ие6, если скриптов просто много, во всяком случае спад пошёл, это не может не радовать.
          • 0
            Когда у геймера не идёт новая «классная игрушка» он идёт апгрейтиться. Я не предлагаю разработчикам убеждать начальство в том, что нужно взять и запретить… Это бесполезно. Но один из выходов — это перестать поддерживать. Тогда старым браузером не будет смысла пользоваться.
            Почему никто не использует IE 3-4? :) Наверное потому, что он безнадёжно устарел и не отображает ни один сайт нормально. Люди просто не видят смысла менять то, что и так нормально работает.
            • 0
              3-4 версией IE не пользуются потому, что ОС, с которыми они поставлялись уже не используются
              а XP продается до сих пор (с IE6) и многие хотят чтобы он продолжал продаваться
              • 0
                Ну, это понятно.

                А у меня не установилась бета IE8 :( Обидно. Даже не пощупать…
              • 0
                Насколько я понимаю, легально сейчас продаётся только XP SP3, а она с IE7.
                • 0
                  может быть это касается коробочных копий
                  к примеру всего 4 месяца назад я купил в магазине новый нетбук MSI Wind на котором стоял XP SP2 c IE6
                  хотя, готов поверить что мне просто не повезло :)
          • НЛО прилетело и опубликовало эту надпись здесь
        • +2
          я с вами согласен, ie6 нужно перестать поддерживать
          я уже предлагал создать инициативу stopIE6
        • 0
          Причем первым из серьезных сайтов должен быть microsoft.com сотоварищи :) Активно пользуюсь шестеркой по назначению (как браузером, а не как инструментом разработки) только на них
    • 0
      Буквально вчера бурно обсуждали этот вопрос. Вывод один, Microsoft не хочет переводить пользователей старой винды, ранних версий, но новые браузеры, без перехода на новые версии Windows.
      • 0
        глупости, обновление на 8 версию будет критическим для всех поддерживаемых версий Windows: XP, 2003,2008,Vista
        • +1
          В принципе да, но к сожалению есть люди которые «кладут» на апгрейд. Но это уже их проблемы. И думаю, что в большинстве своем, люди которые не апгрейдятся используют пиратские версии винды.
    • 0
      А зачем нужно кого-то заставлять? Для вашего (нашего, веб-разработчиков) удобства?

      Знаю людей, которые органично не воспринимают ни IE7, ни конкурентов, нравится им (читай привыкли за много лет) IE6 и менять (читай отказываться от старых привычек и обзаводится новыми) не хотят. Я и сам предпочитаю на XP IE7 не ставить — там где нужен «браузер от MS» пользуюсь шестеркой, привычна, поведение ожидаемо и т. п., а IE 7 только для проверки функционирования своих разработок в нем — дефолтный интерфейс не нравится, а разбираться как его настроить (и можно ли) или «а-ля IE6», или «а-ля FF3» (то есть чтоб интерфейс был привычным для меня) желания нет. Как, кстати, и в настройках интерфейса Оперы нет желания разбираться, может и можно из него сделать почти полный аналог «моей сборки» FF3, но зачем, если запускаю IE6, IE7 и Opera 9.x (а также Safari а теперь еще и Chome) перед деплойментом, проверяю рендеринг, правлю шаблоны при необходимости и всё. Серверную логику предпочитаю тестить и отлаживать в FF3
  • 0
    Спасибо за статью! XaocCPS, а поддержки Canvas у него по прежнему нет? Я слышал только про эмуляцию через Silverlight. Очень хотелось бы попробовать Canvas, но отсутствие поддержки в (пока) доминирующем браузере останавливает.
    • 0
      нету, это элемент html5, который слабо поддерживается в ie8
      • 0
        Хмм… «Сообщалось, что новая версия получит переписанный с нуля движок рендеринга, что команда разработчиков нацелена на поддержку стандартов, таких как CSS 2.1, CSS 3 и HTML 5… И ожидания сбылись...»
        То есть не совсем :) Обидно.
        • 0
          кончено не совсем, html5 еще не готов, чтобы можно было вообще оценить это «все»
          но к примеру dom storage будет включен (это часть html5)
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Рад за тебя :)
  • 0
    Давно ждал Firebug для IE.
    Но, с первого взгляда на скриншоты видно, что накосячили.

    Например, посмотрите на HTML закладку Developer Tools. В правой панели наследуемые стили CSS, причём, как видно из скриншота, в порядке наследования DOM — сначала тэг body, далее div, видимо, где-то в хвосте искомый select.
    Порядок следования просто необходимо изменить на обратный. Иначе придётся скроллить каждый раз.

    Из таких мелочей складывается впечатление о продукте. Чтобы им (Developer Tools) удобно было пользоваться, необходимо позаботиться о деталях.
    К слову, девелоперская консоль в Google Chrome тоже крайне неудобна во многих отношениях.

    Firebug до сих пор остаётся незаменимым инструментом в web-разработке, для тех кто занимается этим серьёзно.
    • 0
      это скриншот beta2
      я погляжу дома в win7 может быть там порядок изменен, если что — отпишу
  • 0
    и до сих пор нет полноценной поддержки xhtml с правильным миме?
  • 0
    хех терь осталось придумать как заставить пользователей ие, обновится до 8 версии после ее выхода :)
    иначе буим еще года 3 — 4 поддерживать ие6 и лет 5 — 7 ие7 :/

    за полноценный обзор спасибо
  • 0
    Отлично! Надо будет запомнить всё это, когда начнём программить под него!
    • 0
      в избранное ;-)
  • 0
    Вообще IE стал намного лучше, перестал падать, вываливаться, зависать (нужное подчеркнуть), а стал очень стабильно работать. Уже месяца с лишним работаю в нем и очень доволен. Особенно нововведениями.
  • 0
    Во-первых, автору большое спасибо за статью, как раз хотела почитать именно такой подробный и грамотный обзор.
    Во-вторых, хочется надеяться, что ИЕ8 оправдает ожидания. Все-таки у этого браузера репутация так подмочена, что разработчикам нужно очень сильно постараться, чтобы реабилитировать ее в глазах пользователей.
    • 0
      главное не ждать слишком многого
  • 0
    а что известно насчёт такой особенности как <![if IE 8]>?
    она работает в 8ке?
  • 0
    Очень интересно, будет ли поддержка userscripts? Они кажется уже поддерживаются всеми браузерами, было бы круто, если бы оно было и в IE.

    И планируется ли какой-то резак рекламы?
  • 0
    А где информация по микроформатом и webslice?
  • 0
    они там в плане векторной графики по-прежнему не предлагают ничего лучше чем использовать VML в режиме совместимости с семеркой?
    • НЛО прилетело и опубликовало эту надпись здесь

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.