Стандарт Web Performance консорциума W3C — продолжение инвестиций в производительность

Недавно, в четверг 8 ноября 2012 г., рабочая группа консорциума W3C по стандарту Web Performance провела Семинар W3C по производительности. Его цель заключалась в обсуждении текущих проблем и новых идей по повышению производительности, требующих внимания рабочей группы. В этом семинаре приняли участие 45 представителей 21 организации, включая большинство производителей браузеров (Майкрософт, Google и Mozilla), производителей оборудования (Intel, Qualcomm, Nokia, Motorola), поставщиков сетевых решений (Cisco, Akamai, F5), а также ведущих веб-компаний (GMail, Google Search, Bing, NetFlix, LinkedIn, Zynga и др.). Подробную информацию о представленных на этом семинаре докладах и состоявшихся обсуждениях можно найти в этом отчете.

Предоставление возможности точного измерения характеристик производительности веб-приложений и создания приложений с более эффективным использованием ресурсов процессора и электропитания является необходимым условием обеспечения производительности веб-приложений. Рабочая группа консорциума W3C по стандарту Web Performance работала над достижением этих целей на протяжении недавно завершившегося второго отчетного периода. Меньше чем за два года она довела до уровня стандартов восемь интерфейсов, которые были реализованы в современных веб-браузерах с поддержкой HTML5: Navigation Timing, Resource Timing, User Timing, Performance Timeline, Page Visibility, Timing control for script-based animations, High Resolution Time и Efficient Script Yielding. Internet Explorer 10 — первый браузер, поддерживающий все эти восемь новых API.

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

На основе данных, собранных за последние несколько месяцев, рабочая группа по стандарту Web Performance приняла решение в третьем отчетном периоде сосредоточить внимание на следующих вопросах:

  • Метрики времени
    Рабочая группа продолжит совершенствовать интерфейсы Timing: Navigation Timing, Resource Timing, User Timing и Performance Timeline. Например, мы рассмотрим возможность реализации поддержки рабочих веб-процессов в интерфейсах Timing и включения информации о диапазонах байтов видео в Resource Timing.
  • Спецификация Efficient Script Yielding
    Рабочая группа продолжит улучшать API-интерфейсы для эффективного использования ресурсов процессора и электропитания, такие как API-интерфейс setImmediate, определенный в спецификации Efficient Script Yielding.
  • Компонент Prerender
    Рабочая группа займется стандартизацией компонента Prerender, позволяющего почти "мгновенно" выполнять переходы между веб-страницами в случаях, когда браузер "уверен", что пользователь с высокой степенью вероятности посетит некоторый URL-адрес.  Принцип работы этого компонента заключается в том, что браузер будет заранее открывать веб-страницу на скрытой вкладке, если увидит тип ссылки "prerender" или будет уверен, что пользователь с высокой степенью вероятности откроет эту ссылку. Когда пользователь действительно открывает данную ссылку, браузер отображает прежде невидимую вкладку и создается впечатление мгновенного перехода.
  • Приоритеты ресурсов
    Сейчас браузеры загружают ресурсы в том порядке приоритета, который считают наиболее эффективным для быстрой загрузки страницы. Однако разработчикам может потребоваться установить для некоторых ресурсов более высокий приоритет по сравнению с другими. Например, загрузка изображений, расположенных в верхней половине страницы, может иметь более высокий приоритет по сравнению с загрузкой изображений, расположенных в нижней половине. Хотя разработчики могут предоставить браузеру некоторые подсказки относительно приоритета загрузки, например использовать атрибуты "defer" и "async" в разметке, эти возможности не охватывают большинство ресурсов. Чтобы помочь браузерам загружать ресурсы с учетом приоритета, рабочая группа расширяет свою программу на отчетный период и включает в нее совместимые средства, позволяющие разработчикам предоставлять браузеру подсказки о приоритете загрузки ресурсов.
  • Интерфейсы диагностики
    Разработчики хотят узнать, как сделать веб-приложения более быстрыми и менее подверженными возникновению ошибок. Рабочая группа расширяет свою программу на отчетный период и включает в нее совместимые средства, позволяющие разработчикам получать диагностические данные браузера по их веб-приложениям. Например, с помощью этих интерфейсов разработчик сможет разобраться, где происходит утечка памяти или с какими ошибками сталкиваются пользователи в веб-приложениях.
  • Маяк
    В настоящее время аналитические скрипты заблокируют выгрузку текущей страницы путем выполнения в цикле, чтобы подтвердить, что аналитические данные отправлены веб-серверу. Такое поведение замедлит переход на следующую страницу, из-за чего у пользователя создастся впечатление низкой производительности. Чтобы помочь разработчикам избежать этого, рабочая группа расширяет свою программу на отчетный период и включает в нее совместимые средства, позволяющие разработчикам асинхронно передавать данные из браузера на веб-сервер и гарантировать, что в конечном итоге данные будут отправлены браузером.
  • Отображение показателей производительности
    Разработчики хотят понимать, какова производительность разрабатываемых ими игр и анимаций.
    Рабочая группа расширяет свою программу на отчетный период и включает в нее совместимые средства, позволяющие разработчикам получать частоту кадров и пропускную способность, необходимые для используемого типа отображения информации.

Эта рабочая группа демонстрирует прекрасный пример того, насколько быстро новые идеи могут стать совместимыми стандартами, на которые разработчики могут опираться в современных браузерах с поддержкой HTML5. Вместе с ведущими организациями в отрасли и активными участниками сообщества, входящими в состав этой рабочей группы, мы надеемся по-прежнему обеспечивать быстрый прогресс в области совместимых стандартов на пользу разработчикам и всем пользователям Интернета.

Джатиндер Манн (Jatinder Mann), Internet Explorer, руководитель программы