Как стать автором
Обновить

Internet Explorer 9: наиболее полное руководство разработчика (и не только), часть 4

Время на прочтение7 мин
Количество просмотров6.4K
что еще нового в IE9 PP3, кроме canvas и video? Огромное описание, масса картинок.

HeaderLeft[1]

23 июня строго по графику (период 8 недель) вышла третья тестовая сборка IE9. На Хабре уже успели написать про этот релиз и в самых общих словах обрисовать нововведения. Кроме того, тут же на Хабре успели сравнить производительность canvas в IE9 и Chrome.

Этот пост раскроет значительно больше деталей третьей тестовой версии Internet Explorer 9 и расскажет о нововведениях в браузер, которые будут важны для разработчиков.

Это четвертая статья из серии статей про нововведения в IE9 для разработчиков. Ознакомится с предыдущими частями можно здесь: часть 1 (CSS3, HTML5, DOM), часть 2 (SVG, GPU), часть третья (профили ICC, форматы изображений, JavaScript).

HTML5/CSS3/DOM/SVG/XHTML


В IE9 Platform Preview 3 обновлены или реализованы следующие элементы, которые были не до конца реализованы в предыдущих версиях или которые отсутствовали вовсе:

HTML5

  • обработка свободного места согласно правилам HTML5 (HTML5-conformant whitespace handling).

CSS3

  • Полная поддержка модуля CSS3 Values & Units
    • deg: degrees (angle unit)
    • grad: grads (angle unit)
    • rad: radians (angle unit)
    • turn: turns (angle unit)
    • ms: milliseconds (time unit)
    • s: seconds (time unit)
    • rem: font size of the root element (relative length unit)
    • vw: viewport width (relative length unit)
    • vh: viewport height (relative length unit)
    • vm: smaller of viewport width or height (relative length unit)
    • ch: zero-width (width of the zero glyph in the rendering font; relative length unit
    • Добавлено свойство calc(), которое позволяет высчитывать значения CSS-элементов.
  • Полная поддержка модуля CSS3 Namespaces
  • Полная поддержка модуля CSS3 Background & Borders, кроме того поддержка SVG-кода как фона в том числе для множественных фонов.
  • Поддержка CSS3 Fonts: включение в @font-face форматов TrueType, OpenType, Open Font Format. Пока остаются не реализованными свойства CSS3 Fonts: font-size-adjust и некоторые другие.
Кроме того реализована поддержка цветовых моделей HSL и HSLA.

image

DOM

  • полная поддержка DOM L2/L3 Events;
  • полная поддержка DOM Style;
  • в DOM Core добавлены функции и свойства: adoptNode, compareDocumentPosition, CDATASection, importNode, inputEncoding, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, replaceWholeText, textContent, xmlEncoding, xmlStandalone, xmlVersion, wholeText.

SVG

  • реализованы элементы: gradients, patterns, masking, clipping, markers, linking & views;
  • внедрение SVG в <embed>, <iframe>, <img>;
  • поддержка файлов .SVGZ с удаленного сервера;
  • поддержка манипуляций SVG Text: Fill, stroke, positioning (x,y,dx,dy,rotate).
Новые возможности SVG в IE9 добавляют массу интересного, например градиенты:

image

image

XHTML/XSLT и документы “text/xml”, “application/xml”

  • XML-документы отображают SVG и XHTML-содержимое;
  • XML-движок обновлен с MSXML3 до MSXML6;
  • XSLT может применяться к SVG и XHTML-документам.

Демонстрации


Разработчики добавили пару демонстраций изменений CSS3 и DOM:
IE Logo

Анимированный логотип IE, который строится на одних только элементах border-radius.

image

Увы, Opera 10.6 Beta из-за багов в реализации свойств CSS3 отображает логотип неверно, а анимацию проводит рваную и дерганную.

image

DOM Traversal Gallery

Данная демонстрация показывает возможности работы механизма DOM Traversal по фильтрации элементов DOM.

image

ACID3


IE9 PP3 проходит тест ACID3 на 83 балла из 100. Предыдущие тестовые версии набирали 55 и 68 балла соответственно. Прогресс очевиден.

Acid3 - 83/100

Веб-шрифты


В IE9 Platform Preview 3 добавлена поддержка встраиваемых шрифтов WOFF, TrueType и OpenType. Так же поддерживается стандарт EOT.

Реализация поддержки встраиваемых шрифтов, на мой взгляд, очень важный шаг. И снова, IE9 показывает свое превосходство в поддержке рендеринга и сглаживания шрифтов с помощью GPU. Ниже примеры рендеринга WOFF в разных браузерах.

Fonts demo in IE9 - correct fonts are appliedFonts demo in Firefox - correct fonts are appliedFonts demo in chrome - fonts are not applied correctly

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

image

ECMAScript 5 и производительность JavaScript


В новой тестовой версии IE9 в очередной раз увеличили производительность JavaScript:

Webkit Sunspider Results showing just Pre-release browsers

Обновленная версия IE9 содержит массивное обновление поддержки стандарта ECMAScript 5. Новые элементы представлены в следующем списке:
  • для Object:
    • Object.defineProperty, Object.defineProperties, Object.create, Object.getPrototypeOf, Object.getOwnPropertyDescriptor, Object.getOwnPropertyDescriptor, Object.keys, Object.seal, Object.freeze, Object.isSealed, Object.isFrozen, Object.preventExtensions, Object.isExtensible;
  • для Array:
    • indexOf, lastIndexOf, forEach, every, some, map, filter, reduce, reduceRight;
  • другие полезные методы:
    • String.prototype.trim, Date.prototype.toISOString, Date.parse, Date.now, Array.isArray, Function.prototype.bind
Кроме того частично реализован биндинг событий через конструкцию ‘::’.

Разработчики добавили несколько демонстраций новых возможностей ECMAScript 5:
  • ECMAScript 5 Arrays – работа с новым API массивов;
  • ECMAScript 5 Game – игра построенная на разных API ECMAScript похожая на легендарный Bejeweled.
image

По поводу реализации ECMAScript 5 Internet Explorer 9 занял лидирующую позицию. Тесты показывают следующие результаты:

image

Многих не устраивает то, что эти тесты отправлены в W3C самим Microsoft, наверное, лень перейти по ссылке и убедиться в тесте самостоятельно, благо исходные материалы доступны всем и каждому.

Тем не менее, если вам нужно “независимое” мнение, то пожалуйста, ознакомьтесь с независимым тестированием, которое показывает полную поддержку объектов стандарта ECMAScript 5 браузером IE9:

image

window.msPerformance


Разработчики Internet Explorer 9 добавили в третью тестовую версию поддержку Perfomance API который является частью спецификации W3C Web Timing. С помощью этого инструмента можно протестировать ваши веб-сайты с некоторой тестовой нагрузкой. API может быть изменен со временем, поэтому пока имеет приставку “ms”. Посмотреть на работу этого API можно на специальной странице.

image

HTML5 Video/Audio


Самая ожидаемая новая функция IE9 PP3 – это HTML5 Video. О ней, в отличии от canvas было известно заранее. Работу с видео в IE9 показывали еще в ходе конференции MIX, но ни в первой тестовой версии ни во второй поддержки не было.

Третья версия IE9 принесла поддержку HTML5 Video и, конечно, воспроизведение видео ускоряется через GPU (но пока только в Windows 7, не в Vista).

В данный момент реализована поддержка воспроизведение видео с кодеком H.264. Поддержка WebM будет реализована позднее, вероятно в первой бета-версии IE9, которая ожидается в августе.

Кроме тега video добавлена поддержка тега audio. Для этого тега поддерживаются кодеки MP3 и AAC. Разработчики предупреждают о известном баге: в Windows Vista файлы MP3, которые кодированы с помощью LAME могут проигрываться неправильно.

Разработчики подготовили пару интересных демонстраций.

IMDb Video Panorama


image

При поддержке IMDB.com запущена демонстрация с рядом трейлеров на популярные вышедшие и ожидаемые фильмы. Измеритель FPS покажет производительность вашего браузера.

HTML5 Audio XML Playlist


image

Для демонстрации тега audio разработчики подготовили проигрыватель музыки со списком и горячими клавишами.

Canvas


Большим сюрпризом этого выпуска IE9 стала поддержка HTML5 Canvas. Слухи о поддержке canvas однажды просачивались в интернет, но подтверждения не получили.

В IE9 PP3 полностью поддерживается Canvas Element API и большая часть Canvas 2D Context API. Работа с canvas полностью ускоряется через GPU и это заметно на демонстрациях.

Ниже представлен список того, что в canvas IE9 реализовано не полностью:
  • пока нет поддержки атрибута globalCompositeOperation;
  • пока нет поддержки Canvas 2D Context DOM Exceptions;
  • нет поддержки drawFocusRing() и API управления фокусом.
Разработчики подготовили массу красивых и интересных демонстраций использования canvas. Рассмотрим их:

Amazon Shelf


image

Работа с каталогом бестселлеров книг с Amazon, при выборе книга приближается и ее можно полистать. В IE9 все операции происходят моментально с FPS = 60.

FishIE Tank


image

Демонстрация, которая уже стала знаменитой. Ее цитируют на множестве сайтов и показывают в многочисленных роликах. В аквариуме плавают рыбки, число которых можно увеличивать. Выше скриншот в 1000 рыбок, рыбки плавают достаточно хорошо. В Opera 10.6 Beta при этих условиях – 2 FPS. Про Chrome 6 говорить не приходится, смотрите видео с независимым тестом от Download Squad.



Mr. Potato Gun


Помните видео с высокоскоростным Chrome и картофелем? Команда IE9 ответила тестом с картошкой. Попробуйте, такой ли быстрый Chrome в этом тесте?

image

Asteroid Belt


Следующий тест – это астероидное облако с некоторым количеством сателлитов у одного из них. Сателлиты вращаются по орбите и вы можете увеличить их количество и посмотреть как это отразится на производительности. На IE9 увеличение не сказывается вообще никак.

image

Deep Zoom


Следующая демонстрация показывает реализацию технологии DeepZoom, которая ранее работала либо на Ajax либо на Silverlight, на базе canvas.

image

Перед вами гигапиксельная панорама по которой можно свободно перемещаться приближая и отдаляя интересующие вас детали.

Canvas Pad


Последняя демонстрация – это небольшой каталог реализованных функций canvas с демонстрацией. Например, на скриншоте демонстрируется анимация на canvas:

image

Тесты


Разработчики IE9 создали для W3C еще 118 новых тестов по множеству параметров реализации стандартов. Плюс к этому было создано еще 1309 тестов реализации ECMAScript 5. Текущая ситуация по этим тестам такова:

image

Как можно убедиться, IE9 сам проходит не все тесты. Ознакомится более подробно с ними и проверить каждый тест самостоятельно можно на этой странице.

Инструменты разработчика


Обновились и инструменты разработчика IE9:
  • вернулась вкладка Profiler для профилирования скриптов, DOM и встроенных функций;
  • во вкладке Network появилась колонка Initiator, которая показывает что именно вызвало загрузку контента;
  • ошибки парсинга XML теперь отображаются в консоли инструментов.

Дополнительно


Дополнительно доступны видео на канале Channel 9:В блоге разработчиков Internet Explorer большой пост с описанием нововведений.

Обширное официальное руководство разработчика IE9 на английском языке.

За бортом


За бортом IE9 по прежнему остаются такие вещи как геолокация, web workers, web sockets, css3-трансформации, WebGL и прочие стандарты, многие из которых еще не выбрались из статуса черновиков. Вероятно, что что-то из этого мы увидим в августе в бета-версии IE9. Будем ждать сюрпризов, как в случае с canvas.

Заключение


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

Разработка IE9 движется полным ходом. Во многих местах IE9 догнал, а то и обогнал своих конкурентов. Будем надеятся, что темп останется прежним и финальная версия IE9 будет еще лучше.
Теги:
Хабы:
+27
Комментарии134

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн