🔥

Тред (Андрей Прокопюк)


Раз будем говорить о скорости, пожалуй, следует начать с методик измерения. Так уж у нас заведено – не измерил, значит, не было. Некогда мы со @st00nsa рассказывали об этом на HolyJS: youtu.be/Whm2FMBIgA0, youtu.be/TzCMDlYMydA Подробнее – в треде

В классической модели скорости мы смотрели вот на что: FCP – время первой отрисовки контента FMP – время отрисовки полезного контента JS inited – время, когда заработали все JS-элементы Пока так и продолжаем, но появляются новые вызовы, ответ на которые мы готовим

FCP – время первой отрисовки. Оно должно быть минимальным. Но для всех ли проектов и для любых ли переходов? Пользователям не очень нравится мигание блоков страницы, а оно будет при большой дельте между FCP и FMP. Возможно, пора смотреть и на эту дельту.

FMP – время отрисовки значимого контента. Очень показательная метрика, для которой нет стандартного способа измерения. Нужно комбинировать разные API, чтобы получить эти данные: requestAnimationFrame, IntersectionObserver, Element Timing, Resource Timing. Самая сложная метрика

JS inited в первой своей версии был прост – время, когда фреймворк закончил развешивать обработчики после DOMContentLoaded. Но что если фреймворк не ждёт DCL, а инициализируется по мере появления элементов во вьюпорте? Какое время считать? Об этом задумались при переходе на React