Missed the action at the 2018 Chrome Dev Summit? Catch up with our playlist on the Google Chrome Developers channel on YouTube. Watch now.

Оптимизация контента

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

На что похоже современное приложение? Ответ на этот вопрос может дать HTTP Archive. Этот проект отслеживает, из чего состоит Интернет, периодически сканируя самые популярные сайты (более 300 000 из списка Alexa Top 1M), а после запоминая и объединяя аналитические материалы о количестве ресурсов, типах контента и других метаданных для каждого сайта.

Тенденции HTTP Archive

50-й персентиль 75-й персентиль 90-й персентиль
HTML 13 КБ 26 КБ 54 КБ
Изображения 528 КБ 1213 КБ 2384 КБ
JavaScript 207 КБ 385 КБ 587 КБ
CSS 24 КБ 53 КБ 108 КБ
Другое 282 КБ 308 КБ 353 КБ
Всего 1054 КБ 1985 КБ 3486 КБ

Данные выше показывают тенденцию к увеличению числа скачиваемых байтов для популярных сайтов между январем 2013 и 2014 годов. Конечно, на всех сайтах увеличение происходит с разной скоростью и в разном объеме, поэтому мы выделяем несколько квантилей в классификации: квантили 0,5 (медиана), 0,75 и 0,9.

В начале 2014 года на среднестатистический сайт отправлялось около 75 запросов, которые в сумме составляли переданных 1054 КБ. Общее количество байтов (и запросов) постоянно росло в течение предыдущего года. Само по себе это неудивительно, но отражает важные изменения в производительности сайтов. Скорость интернет-соединений увеличивается, но в разных странах по-разному. Кроме того, у многих пользователей до сих пор установлены ограничения на объем скачиваемых данных и дорогие тарифные планы, особенно на мобильных устройствах.

Интернет-приложения, в отличие от компьютерных, не требуют установки. Нужно просто ввести ссылку и приступить к работе — это ключевое свойство Сети. Однако в этом случае нам приходится скачивать десятки, а иногда и сотни различных ресурсов, которые весят мегабайты и скачивание которых занимает сотни миллисекунд. И все этого для того, чтобы сайт мог мгновенно отвечать на запросы пользователя.

Учитывая все эти условия, поддерживать высокую производительность достаточно сложно. Именно поэтому нам необходима оптимизация контента: удаление ненужных ресурсов, их сжатие при передаче и кеширование.