API-интерфейсы для измерения производительности веб-приложений быстро получили статус Candidate Recommendation консорциума W3C

Мы рады сообщить вам, что три новые спецификации рабочей группы консорциума W3C по производительности веб-приложений получили статус Candidate Recommendation консорциума W3C. Точное измерение характеристик производительности веб-приложений играет важную роль для повышения скорости работы с Интернетом. Кроме того, разработчикам необходимо эффективно использовать соответствующее аппаратное обеспечение для повышения производительности своих приложений. В течение последних двух лет такие компании, как Майкрософт, Google, Mozilla, Intel и Facebook, работали в рамках рабочей группы для достижения этих целей. Это прекрасный пример того, чего можно достичь благодаря объединению усилий отрасли и сообщества на основе сотрудничества с консорциумом W3C.

Спецификации Navigation Timing, Resource Timing, User Timing и Performance Timeline помогают разработчикам точно измерять производительность веб-приложений. Первые три из этих спецификаций предоставляют разработчикам информацию, связанную с навигацией в документе, ресурсами на странице и скриптами разработчика соответственно. Спецификация Performance Timeline определяет единый интерфейс для извлечения этих данных о времени. До появления этих API разработчики не могли точно измерять производительность своих сайтов.

Чтобы максимально точно измерить эти три показателя, в спецификации High Resolution Time определяется точность часов до долей миллисекунды. Этот интерфейс помогает не только точно измерять показатели производительности, но и лучше вычислять частоту кадров и синхронизировать анимацию или аудиоподсказки. Впервые разработчики могут измерять параметры операций с точностью до долей миллисекунды.

Спецификации Page Visibility, Timing control for script-based animations и Efficient Script Yielding помогают разработчикам создавать веб-приложения, более эффективно использующие ресурсы центрального процессора и электропитания. API-интерфейс Page Visibility позволяет программным образом определять текущее состояние отображения страницы. Разработчики могут использовать эти данные для принятия взвешенных решений, связанных с энергоэффективностью и использованием ресурсов центрального процессора, например уменьшать активность, когда страница находится на фоновой вкладке. API requestAnimationFrame из спецификации Timing control for script-based animations позволяет создавать более эффективные анимации JavaScript. Наконец, API setImmediate из спецификации Efficient Script Yielding позволяет разработчикам эффективно передавать поток управления агенту пользователя и получать мгновенный обратный вызов, эффективно используя центральный процессор.

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

Спецификация Editor’s Draft First Public Working Draft Last Call Last Call 2 Candidate Rec Proposed Rec Rec
Navigation Timing Сентябрь 2010 Октябрь 2010 Январь 2011 Февраль 2011 Июль 2012
Resource Timing Сентябрь 2010 Май 2011 Июнь 2011 Май 2012
User Timing Октябрь 2010 Август 2011 Август 2011 Май 2012 Июль 2012
Performance Timeline Июль 2011 Август 2011 Август 2011 Май 2012 Июль 2012
High Resolution Time Март 2012 Март 2012 Март 2012 Май 2012
Page Visibility Апрель 2010 Июнь 2011 Июль 2011 Июль 2012
Display Paint Notifications Май 2011 Июнь 2011 Февраль 2012
Efficient Script Yielding Июнь 2011
Navigation Timing 2 (НОВАЯ) Апрель 2012 Май 2012

Таблица, в которой показан статус спецификаций консорциума W3C по производительности веб-приложений

В этом месяце спецификация Navigation Timing была опубликована как Proposed Recommendation (PR). Этот этап стандартизации является заключительным шагом перед тем, как веб-стандарт становится официальной рекомендацией консорциума W3C (получает статус Recommendation). Кроме того, этот интерфейс начал широко применяться в браузерах, включая его поддержку начиная с версий Internet Explorer 9, Chrome 6 и Firefox 7. Недавно рабочая группа начала внедрять улучшения на основе отзывов и предложений и работать над следующей версией этой спецификации — Navigation Timing 2.

В этом месяце спецификации User Timing, Performance Timeline и Page Visibility были опубликованы как Candidate Recommendation (CR). Этот этап стандартизации предшествует этапу PR и отражает то, что данная спецификация была всесторонне изучена и удовлетворяет техническим требованиям рабочей группы консорциума W3C. Спецификация Resource Timing была опубликована как CR всего два месяца назад вместе со спецификацией High Resolution Time, которая перешла из стадии Editor’s Draft в стадию CR всего за три месяца.

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

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