Функция onTTFB предназначена для измерения Time
to First Byte (TTFB) — времени, которое проходит с момента
начала запроса страницы до получения первого байта ответа от сервера.
Этот показатель является критически важным для оценки производительности
веб-приложений, так как напрямую отражает скорость отклика сервера и
сетевую задержку.
onTTFBimport { onTTFB } from 'web-vitals';
onTTFB(callback, reportAllChanges);
Параметры:
callback — функция, которая будет вызвана после
получения метрики TTFB. Её аргументом является объект типа
TTFBMetric.reportAllChanges (необязательный, boolean) —
если установлено true, функция будет вызывать
callback при каждом изменении метрики, а не только при
первом значении.TTFBMetricОбъект, передаваемый в callback, содержит все
необходимые данные о метрике TTFB и имеет следующую структуру:
interface TTFBMetric {
name: 'TTFB';
value: number;
delta: number;
id: string;
rating: 'good' | 'needs-improvement' | 'poor';
}
Поля объекта:
name — строка, всегда 'TTFB',
идентифицирующая тип метрики.
value — число, представляющее фактическое время в
миллисекундах, прошедшее до получения первого
байта.
delta — разница между текущим и предыдущим значением
метрики, полезна для отслеживания динамики изменений.
id — уникальный идентификатор метрики. Используется
для корреляции данных в аналитике.
rating — качественная оценка метрики в соответствии
с Web Vitals thresholds:
good — значение ≤ 200 мсneeds-improvement — значение > 200 мс и ≤ 600
мсpoor — значение > 600 мсonTTFBimport { onTTFB } from 'web-vitals';
onTTFB((metric) => {
console.log('TTFB:', metric.value, 'ms');
console.log('Оценка качества:', metric.rating);
});
В этом примере функция выводит в консоль время до первого байта и категорию качества. Это позволяет анализировать производительность сервера в реальном времени и выявлять узкие места.
reportAllChangesЕсли необходимо отслеживать все изменения метрики TTFB на странице, можно использовать второй аргумент:
onTTFB((metric) => {
console.log(metric);
}, true);
В этом режиме объект TTFBMetric будет передаваться
каждый раз при изменении значения, что полезно для
динамических страниц с большим количеством запросов или при тестировании
влияния CDN, кешей и серверной оптимизации.
TTFB часто используется совместно с внешними системами аналитики, например Google Analytics или собственными инструментами мониторинга. Для передачи метрик можно использовать следующий подход:
import { onTTFB } from 'web-vitals';
onTTFB((metric) => {
fetch('/analytics', {
method: 'POST',
body: JSON.stringify(metric),
headers: { 'Content-Type': 'application/json' }
});
});
Это позволяет хранить и анализировать исторические данные о времени отклика сервера, выявлять тренды и определять участки кода или инфраструктуры, замедляющие загрузку страницы.
reportAllChanges помогает выявлять
нестабильные участки времени отклика при последовательных загрузках
ресурсов.onTTFB автоматически учитывает первые
навигационные запросы, включая серверные редиректы.TTFBMetric совместим с другими метриками Web
Vitals, что позволяет создавать комплексные отчеты и дашборды
производительности.