Pull to refresh

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

Internet Explorer
HeaderLeft[1]
Это третья часть руководства по нововведениям в браузере IE9. В первой части я рассмотрел поддержку стандартов CSS, HTML5, DOM, вторая часть была посвящена реализации в IE9 технологии SVG. В третьей завершающей части я расскажу про поддержку в IE9 нового стандарта веб-шрифтов WOFF, ICC-профилях, форматов TIFF и JPEG XR, изменениях в JavaScript-движке, инструментах разработчика и об интерфейсе пользователя в IE9.

Веб-шрифты и WOFF


История внедрения произвольных шрифтов в веб-страницы имеет давние корни. Для многих будет откровением узнать, что первым браузером реализовавшим свойство @font-face из CSS2 был Internet Explorer 4.0 выпущенный 13 лет назад в 1997 году. Однако, из-за того, что технология не получила широкого распространения, @font-face был убран из спецификации CSS 2.1, но реализация этого свойства была во всех версиях IE начиная с 4.0.

Надо заметить, что формат шрифта для внедрения в IE не совсем обычный. Он называется Embedded OpenType, является подмножеством формата OpenType и был разработан с целью иметь возможность защитить авторское право на шрифты, а так же позволить уменьшить размер файла шрифта с помощью сжатия и исключения неиспользуемых символов. Файлы eot получались значительно меньше своих собратьев из форматов TrueType и OpenType. Формат EOT был отправлен на стандартизацию в W3C как открытый формат в 2008 году.

@font-face вернулся в спецификации CSS3 и получил реализацию в остальных браузерах только с версий Firefox 3.5+, Safari 3.1+, Opera 10+ и Chrome 4.0+. Однако, в отличии от Internet Explorer, эти браузеры позволяют внедрять шрифты форматов TrueType (TTF) и OpenType (OTF). Проблема авторского права и огромного размера некоторых шрифтов в этом случае не решается.

Новым поколением технологии веб-шрифтов должен стать стандарт WOFF (Web Open Font Format). 8 апреля 2010 года Microsoft, Mozilla и Opera вместе отправили спецификацию WOFF 1.0 в W3C. Это запрос был размещен на сайте W3C 19 апреля. WOFF предлагает те же возможности, что и EOT: он базируется на sfnt, в нем, с помощью специальных инструментов, может быть сокращен набор символов, он сжимается с помощью zlib и у него есть необязательная секция, которую могут использовать авторы для размещения зашифрованных или любых других данных.

Формат WOFF поддерживается в Firefox 3.6 и будет поддерживаться в Internet Explorer 9.

Поддержка TIFF и JPEG XR


Internet Explorer 9 нативно поддерживает форматы изображений TIFF и JPEG XR. Кроме того, IE9 использует декодирование изображений через Windows Imaging Component (WIC), что позволяет увеличить скорость декодирования до 30%.

Если с TIFF все понятно и широкоизвестен, то JPEG XR – это новый стандарт, который еще не получил широкого распространения. JPEG XR – это стандарт ISO/IEC 29199-2:2009 и часть стандарта ITU-T T.832:2009. Разработанный в Microsoft, этот стандарт значительно улучшает старый JPEG-формат и добавляет к нему множество возможностей. Основным преимуществом JPEG XR является то, что при одинаковом с JPEG размером файлов, он предлагает гораздо лучшее качество картинки. Убедится в этом можно на этой тестовой странице для Internet Explorer 9. Там же демонстрируется и поддержка браузером формата TIFF.

ICC-профили


Известная международная организация International Color Consortium стандартизирует форматы ICC profiles. Как сообщает wikipedia: “системы следующие спецификации позволяют сохранить точное цветовоспроизведение при использовании различных приложений и устройств от фазы создания до окончательной печати. Устройству ответственному за цветопередачу соответствует свой ICC-профиль”.

Таким образом поддержка ICC-профилей необходима для точной цветопередачи. И Internet Explorer 9 реализует такую поддержку для ICC v2 и ICC v4. Простой официальный тест от организации ICC позволит определить насколько точно передает цвета ваш браузер и какой версии ICC-профили он поддерживает, если вообще поддерживает.

Chakra – новый JavaScript-движок IE9


На конференции MIX10 Microsoft, помимо всех прочих нововведений в браузер, анонсировал новый JavaScript-движок под названием Chakra. Этот движок даже на ранней стадии показывал отличные результаты производительности обгоняя IE8 в 7 раз. Улучшения в Platform Preview 2 только закрепили успех.

image

В чем же особенности Chakra:

image

— фоновая компиляция JavaScript и использование многоядерных процессоров. При запуске приложения IE9 загружает страницу используя быстрый интерпретатор одновременно с этим фоновый компилятор компилирует JS-код в машинный код и возвращает его назад по завершении. Таким образом, браузер не ждет результата компилятора при запуске страницы и первая загрузка страницы происходит быстрее;

— для оптимизация типов движок IE9 использует техники, которые применяются сегодня в динамических языках: type representation, polymorphic inline caching, dynamic type inference и т.д;

— быстрый интерпретатор используется там, где необходимо немедленное исполнение кода на странице, он использует эффективный opcode, оптимизации с типами, register-based движок позиционирования;

— значительно улучшены все компоненты библиотек JS: для работы со строками, объектами, массивами, особенно регулярными выражениями.

Некоторые подробности нового движка Chakra можно узнать в этом видео: Inside IE 9’s High Performance JavaScript Engine. Там же можно посмотреть и другие видео, которые касаются Internet Explorer 9.

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


То что IE8 включил в себя инструменты разработчика – было большим шагом вперед, в них было несколько инновационных вещей для того времени, например профилировщик JavaScript. Однако, производительность инструментов сильно зависела от сложности HTML-страницы. На больших страницах инструменты тормозили и работать с ними было невозможно.

Другой претензией к инструментам разработчика IE8 было отсутствие возможности мониторинга и анализа HTTP-запросов/ответов. Было приятно узнать, что в IE9 такой инструмент появился.

image

image

Кроме того, работа со страницами с очень большим DOM тоже была улучшена, хоть и не настолько, насколько хотелось бы. Будем надеяться, что к финальной версии производительность подтянут. Из мелочей, который хотелось бы еще отметить:

— возможность менять Agent String

image

— появилась JavaScript-консоль (как справедливо заметили, она была и в IE8, но теперь ее сделали отдельной вкладкой)

image

В двух тестовых сборках IE9 не было вкладки профилировщика JavaScript, но разработчики обещают, что эта функция вернется улучшенной и обновленной.

Внешний вид


Этот раздел полностью мои подозрения, которые могут не иметь ничего общего с действительностью. Дело в том, что текущие тестовые сборки IE9 представлены в неприглядном виде: нет элементов управления, нельзя перейти назад в истории просмотра, нет строки ввода адреса (адрес вводится по ctrl+o).

image

Такому виду я нахожу два разумных объяснения:

— упрощение сделано намеренно, чтобы тестовые версии не использовались на практике и не разошлись среди обывателей, что может привести потмо к трудностям к переводу их на финальные версии. Другими словами, внешний вид IE9 сделан хардкорным для того, чтобы им пользовались только разработчики в целях тестирования;

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

Мне больше нравится вторая гипотеза. Я подозреваю, что IE9 получит WPF-интерфейс (GPU-ускоренный, естественно, как и все в WPF) с кучей визуальных эффектов. Не многие знают, что у Microsoft уже есть браузер построенный на WPF с кардинально новым интерфейсом и парой откровенно удачных решений. Это браузер – Pivot.

image

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

Мне нравятся многие идеи Pivot, но он тяжелый и явно не оптимизирован ни на что кроме работы с pivot-данными. Однако, я надеюсь, что Microsoft сделает из IE9 что-то похожее на Pivot в плане интерфейса, использовав лучшие его идеи.

Другой спекуляцией на мой взгляд может стать возможность расширения будущего IE9. Если интерфейс будет кардинально модифицирован, то претерпит изменение и система плагинов в IE. Я надеюсь, что будущая система расширений будет построена на новой удачной архитектуре MEF, которая доступна в .NET 3.5 и 4.0.

Заключение


В трех статьях я постарался рассказать про то, что именно ждет разработчиков и пользователей в новом Internet Explorer 9. Работа над ним продолжается, но и сейчас заметен тот огромный прогресс в функционале, который проделали разработчики браузера внедряя поддержку множество новых для IE вещей и механизмов. Поддержка CSS3/HTML5/SVG, новый очень быстрый JavaScript-движок, GPU-ускорение и возможно, новый внешний вид – это то, что нас ждет в IE9.

Совсем скоро, в середине или конце июня будет доступна третья тестовая версия IE9, в которой ожидается появление поддержки HTML5 video и прочих нововведений. Я буду держать вас в курсе дел и продолжу этот цикл статей с новой порцией информации.
Tags:
Hubs:
Total votes 83: ↑52 and ↓31 +21
Views 3.3K
Comments Comments 34