Я пытаюсь понять, содержит ли FCP, предоставленный Google Lighthouse, время, которое сервер должен был использовать для ответа.
Насколько я могу видеть значения, предоставляемые API производительности браузера и Google Lighthouse разные.
Например, я построил простой демонстрационный сервер с параметром запроса для управления скоростью ответа:
const path = require('path');
const express = require('express');
const port = 6789;
const app = express();
app.get('/index', (req, res) => {
setTimeout(() => {
res.sendFile(path.resolve(__dirname, './index.html'));
}, Number(req.query.delay || 0));
});
app.listen(port);
console.log('server started on port %s', port);
Я делаю запрос к этому серверу с задержкой 10 секунд, например http://localhost:6789/index/?delay=10000
, и после его загрузки запускаю скрипт, чтобы получить значение FCP в консоли:
window.performance.getEntriesByName('first-contentful-paint')[0].startTime;
// 10113.205000001471
Однако, когда я запускаю Google Lighthouse с той же задержкой в 10 секунд http://localhost:6789/index/?delay=10000
, я вижу, что FCP составляет всего 0,8 секунды, что меньше секунды, например
Я предполагаю, что Google Lighthouse не включает время загрузки сервера, но в какой момент он начинает измерять метрику? Вот цитата из официального веб-документа -
FCP измеряет, сколько времени требуется браузеру для отображения первой части содержимого DOM после того, как пользователь перейдет на вашу страницу. (источник - https://web.dev/first-contentful-paint/?utm_source=lighthouse&utm_medium=devtools)
У кого-нибудь есть идеи? Спасибо!