Учитывается ли время отклика сервера в отчете First Contentful Paint через Google Lighthouse? - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь понять, содержит ли FCP, предоставленный Google Lighthouse, время, которое сервер должен был использовать для ответа.

Из того, что я могу увидеть значения, предоставленные API производительности браузера и Google Маяки бывают разные.

Например, я построил простой демонстрационный сервер с параметром запроса для контроля скорости ответа:

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 с. который меньше секунды, например

enter image description here

Я предполагаю, что Google Lighthouse не включает время загрузки сервера, но затем в какой момент он запускается измерить метри c? Вот цитата из официального сайта: c -

FCP измеряет, сколько времени браузеру требуется для отображения первого фрагмента содержимого DOM после перехода пользователя на вашу страницу. (источник - https://web.dev/first-contentful-paint/?utm_source=lighthouse&utm_medium=devtools)

У кого-нибудь есть идеи? Спасибо!

1 Ответ

0 голосов
/ 10 января 2020

Может быть ошибка с Маяком. Видел несколько случаев, когда люди жаловались на неточность локального маяка :

Давайте предположим, что это не ошибка. Обычно время отклика сервера напрямую влияет на First Contentful Paint. Но в настоящее время (stati c) ресурсы кэшируются браузером или, если вы используете прогрессивное веб-приложение, браузер несколько грациозно справляется с медленными бэк-эндами.

Lighthouse определяет FCP как:

Первая краска с содержательной информацией: первая краска с содержательной информацией - это первый раз, когда браузер рисует любой контент (текст, изображение, холст и т. Д. c) на screen.

Маяк должен предоставлять скриншоты / кинопленки, которые должны соответствовать FCP. то есть посмотрите, видите ли вы активность на вашем экране короткой перед отметкой 1 с, даже если вы замедлили время отклика вашего сервера. Если это так,

a) Очистите кэш, перезагрузите страницу и посмотрите на то, что вы видите на Сетевой панели инструментов разработчика Google

b) Очистите данные приложения (Инструменты разработчика Google - > Приложение -> Очистить хранилище -> очистить данные сайта. Затем попробуйте запустить

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...