Time To Interactive – измеряя пользовательский опыт

С самого начала веб-разработчики и браузеры сосредоточились на технических метриках, что не всегда соответствовало пользовательскому опыту. В качестве примера можно привести, показатели Page Load Time и DOM Content Loaded.

Последние нескольких лет мы стали уделять больше внимания метрикам, которые представляют взгляд пользователя на просмотр веб-страниц. В результате мы получили такие показатели, как “Speed Index”(коэффициент скорости), “first paint” (первое отображение). А также специфические показатели сайта. Например, “time to first tweet” (время до просмотра первого твита).

Сейчас интернет начал переходить на одностраничные приложения, отображаемые в браузере. Метрики, основанные на рендеринге, сильно наказали такие сайты. И есть за что: в них пользователь смотрел на пустой экран, ожидая загрузки приложения и начала создания интерфейса.

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

На самом ли деле?

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

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

WebPageTest добавил строку внизу каскада для отображения отзывчивости основного потока браузера. Главный поток блокируется, если он не получает ответа в течение 50 мс.

На самом ли деле?

Time To Interactive – это показатель, определяющий, когда был загружен основной контент и пользователь может начинать взаимодействовать с ним.

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

  • Time To First Interactive – это самая ранняя точка после рендеринга основного контента, где есть по крайней мере 5-секундное «окно», во время которого страница становится отзывчивой.
На самом ли деле? - 2
  • Time To Consistently Interactive – это самая ранняя точка после рендеринга основного контента, когда можно ожидать, что страница всегда будет отзывчивой.

Самой большой разницей между двумя метриками является то, что «Consistently Interactive» будет учитывать любые задержки, возникающие в конце загрузки страницы. Например, очень медленный обработчик события загрузки. При этом «First Interactive» не будет наказывать сайты за эти задержки. Хотя именно они могут приводить к ухудшению пользовательского опыта:

Ни одна из метрик не является идеальной. Поэтому их следует рассматривать в качестве дополнительных метрик для оценки производительности.

Наталья Кайдаавтор-переводчик статьи «Time To Interactive – Measuring more of the user experience»