API-интерфейсы для измерения производительности веб-приложений быстро получили статус Recommendation консорциума W3C
Рабочая группа по стандарту Web Performance консорциума W3C недавно опубликовала три спецификации в качестве рекомендаций (Recommendation) консорциума W3C. Эти спецификации полностью реализованы всеми основными поставщиками браузеров. Благодаря этому разработчики смогут более точно измерять производительность веб-приложений и повысить скорость работы в Интернете. В течение последних трех лет компании, в том числе Майкрософт, Google, Mozilla, Intel, Facebook и другие, занимались в этой рабочей группе стандартизацией интерфейсов Navigation Timing, High Resolution Time и Page Visibility. Быстрое внедрение этих рекомендаций демонстрирует, чего можно достичь благодаря объединению усилий отрасли и сообщества на основе сотрудничества с консорциумом W3C.
Чтобы повысить скорость работы в Интернете, разработчикам необходимо точно измерять характеристики производительности веб-приложений и эффективно использовать имеющееся оборудование для улучшения производительности своих приложений. Для решения этих задач рабочая группа по стандарту Web Performance работала над созданием 15 различных спецификаций. В следующей таблице представлен уровень зрелости всех спецификаций, редактируемых рабочей группой.
Спецификация | Editor’s Draft | First Public Working Draft | Last Call | Candidate Rec | Proposed Rec | Rec |
---|---|---|---|---|---|---|
Navigation Timing | Сентябрь 2010 | Октябрь 2010 | Январь 2011 | Март 2011 | Июль 2012 | Декабрь 2012 |
Resource Timing | Сентябрь 2010 | Май 2011 | Август 2011 | Май 2012 | ||
User Timing | Октябрь 2010 | Август 2011 | Сентябрь 2011 | Июль 2012 | ||
Performance Timeline | Июль 2011 | Август 2011 | Сентябрь 2011 | Июль 2012 | ||
High Resolution Time | Февраль 2012 | Март 2012 | Март 2012 | Май 2012 | Октябрь 2012 | Декабрь 2012 |
Page Visibility | Апрель 2011 | Июнь 2011 | Июль 2011 | Июль 2012 | Февраль 2013 | Май 2013 |
Display Paint Notifications | Май 2011 | Июнь 2011 | Февраль 2012 | |||
Navigation Timing L2 (НОВАЯ) | Январь 2013 | Январь 2013 | ||||
Efficient Script Yielding | Июнь 2011 | |||||
High Resolution Time L2 (НОВАЯ) | Апрель 2013 | |||||
Beacon (НОВАЯ) | Март 2013 | |||||
Resource Priorities (НОВАЯ) | Апрель 2013 | |||||
Navigation Error Logging (НОВАЯ) | Апрель 2013 | |||||
Resource Error Logging (НОВАЯ) | Апрель 2013 | |||||
Prerender (НОВАЯ) |
Спецификации Navigation Timing, Resource Timing, User Timing и Performance Timeline помогают разработчикам точно измерять время навигации по документу, загрузки ресурсов на странице и выполнения скриптов разработчика. До появления этих API получить такие данные было непросто. Спецификация Navigation Timing была опубликована как рекомендация консорциума W3C, и все основные поставщики браузеров поддерживают ее. Остальные три интерфейса в настоящее время находятся на этапе кандидата к рекомендации (Candidate Recommendation) и ожидают появления двух полных реализаций от поставщиков браузеров. Internet Explorer 10 является сейчас единственным браузером, в котором реализованы все эти интерфейсы. Однако все остальные поставщики браузеров работают над созданием таких реализаций.
Чтобы максимально точно измерять эти показатели производительности, спецификация High Resolution Time позволяет разработчикам измерять параметры операций с точностью до долей миллисекунды. Этот интерфейс помогает не только точно измерять показатели производительности, но и лучше вычислять частоту кадров и синхронизировать анимацию или аудиоподсказки. Он опубликован как рекомендация консорциума W3C, и все основные поставщики браузеров реализовали метод performance.now(), определенный в этой спецификации.
API-интерфейс Page Visibility позволяет программным образом определять текущее состояние отображения страницы. Разработчики могут использовать эти данные для принятия взвешенных решений, связанных с энергоэффективностью и использованием ресурсов центрального процессора, например уменьшать активность, когда страница находится на фоновой вкладке. Эта спецификация также была опубликована как рекомендация консорциума W3C, и все основные поставщики браузеров занимаются ее реализацией.
Спецификации Timing Control for Script-Based Animations и Efficient Script Yielding помогают разработчикам создавать веб-приложения, более эффективно использующие ресурсы центрального процессора и электропитания. API-интерфейс requestAnimationFrame из спецификации Timing Control for Script-Based Animations позволяет создавать более эффективные анимации JavaScript. Все поставщики браузеров полностью поддерживают этот интерфейс, а рабочая группа активно работает над публикацией этой спецификации как кандидата к рекомендации. API-интерфейс setImmediate из спецификации Efficient Script Yielding позволяет разработчикам эффективно передавать поток управления агенту пользователя и получать мгновенный обратный вызов, эффективно используя центральный процессор. Internet Explorer 10 является первым браузером, в котором реализован этот интерфейс.
В этом году рабочая группа начала также рассматривать новые идеи. Редакторские версии черновиков этих идей в настоящее время обсуждаются участниками рабочей группы. API-интерфейс Beacon предназначен для того, чтобы помогать скриптам асинхронно передавать данные на веб-сервер без блокирования события unload, что может отрицательно повлиять на воспринимаемую производительность следующей операции навигации. API-интерфейс Resource Priorities определяет средства, позволяющие веб-разработчикам предоставлять браузеру подсказки о приоритете загрузки ресурсов, чтобы ускорить загрузку страниц. Спецификации Navigation Error Logging и Resource Error Logging, дополняющие спецификации Timing, помогают разработчикам понимать возникающие ошибки и анализировать доступность своих приложений. Спецификация Navigation Timing Level L2 добавляет поддержку High Resolution Time и Performance Timeline к спецификации Navigation Timing, а спецификация High Resolution Time L2 добавляет поддержку рабочих веб-процессов. И это только несколько из черновиков спецификаций, над которыми работает группа в настоящее время. Новые черновики спецификаций для Prerender и других областей диагностики ждут своего часа.
Рабочая группа по стандарту Web Performance консорциума W3C демонстрирует прекрасный пример того, насколько быстро новые идеи могут стать совместимыми стандартами, на которые разработчики могут опираться в современных браузерах с поддержкой HTML5. Вместе с ведущими организациями в отрасли и активными участниками сообщества, входящими в состав этой рабочей группы, мы надеемся по-прежнему обеспечивать быстрый прогресс в области совместимых стандартов, что поможет разработчикам сделать Интернет более быстрым.
Спасибо за внимание!
Джатиндер Манн (Jatinder Mann)
Руководитель программы, Internet Explorer