Рубрики
Uncategorized

Использование первой кончанной краски — FCP

Первая кончанная краска или FCP, измеряет время, чтобы сделать время, чтобы сделать первый элемент веб-страницы. Это современное, ориентированное на пользовательское измерение того, как быстро пользователи …

Автор оригинала: Todd Gardner.

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

FCP является одним из Core Web Vital Метрики производительности, которые измеряют воспринимаемую производительность веб-сайтов. Эти метрики невероятно важны для доставки быстрых пользователей, а избегая SEO Performance Penalties Отказ Проверьте, как FCP сравнивается с другими показателями производительности в Окончательное руководство по измерению веб-характеристик Отказ

Первая кончанная краска метрики

Первая контурная метрика краски рассматривает все шаги, необходимые для показать пользователю первого запрашиваемого контента. Это включает в себя время для ваших серверов, чтобы ответить, время передачи сети, размер HTML и сложность, а также требуемые активы CSS.

В этом случае Кончальный Относится к любым элементам текста или изображения, но не цвет фона документа.

Проверьте этот пример Диаграмма водопада и где FCP отмечен.

FCP в загрузочном водопаде

Загрузка изображений на веб-страницах не нужна для FCP, но браузер необходимо для загрузки всех стилей CSS, включая стили с помощью @Импортировать заявления. Вложенные множественные уровни стилей могут значительно замедлить производительность FCP.

Метрический диапазон FCP

Google определяет приемлемые диапазоны для FCP, чтобы быть меньше, чем 1,0 секунды Отказ Что-нибудь над этим рискует отрицательный пользовательский опыт и возможный ранжирующий штраф. Баллы FCP больше, чем 3,0 секунды Укажите серьезную проблему производительности для вашего сайта.

Измерение FCP с PerformanceBerver

Первая кончанная краска измеряется с использованием PerformanceObserver API и поддерживается в браузерах на основе моргания, такими как Chrome, Edge, Android и Opera. Другие браузеры, включая Chrome на iOS, Safari и Firefox, не могут сообщить метрики FCP.

Вот небольшой код, чтобы проиллюстрировать API:

new PerformanceObserver((entryList) => {
    console.log(entryList.getEntriesByName("first-contentful-paint"));
}).observe({ type: "paint", buffered: true });

В отличие от Крупнейшая кончанная краска Метрика, нет выделенного типа для FCP. Вы должны слушать все события краски и отфильтровать их по имени. Буферизованный Опция позволяет собирать данные после того, как оно произошло. Вставить в этот код в devtools на любой странице, и вы увидите что-то подобное:

Выпуск производительности FCP

Обратите внимание, что значение измерений является Запуск , не продолжительность . Запуск когда событие FCP Начал , пока Продолжительность Как долго мероприятие длилось, что обычно 0.

Причуды, чтены и неожиданное поведение

Скорее всего, вы не будете измерять FCP самостоятельно. Вы полагаетесь на библиотеку, как Веб -талы или услуга, как Запросить метрики собирать данные для вас. Но если вы хотите измерить FCP самостоятельно, есть несколько неожиданных вещей, на которые вы должны смотреть.

1. Не измеряйте фоновые страницы

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

Вы можете обнаружить, находится ли страница на заднем плане и отфильтровала метрики:

var hiddenTime = document.visibilityState === 'hidden' ? 0 : Infinity;

document.addEventListener('visibilitychange', (event) => {
    hiddenTime = Math.min(hiddenTime, event.timeStamp);
}, { once: true });

new PerformanceObserver(entryList => {
    entryList.getEntriesByName("first-contentful-paint").forEach((entry) => {
        if (entry.startTime < hiddenTime) {
            // This entry occurred before the page was hidden
            console.log(entry);
        }
    };
}).observe({ type: "paint", buffered: true });

2. Всегда используйте обнаружение функции

Многие (большинство) браузера не поддерживают PerformanceObserver или Краска тип. Некоторые браузеры объект не определен, в то время как другие бросят ошибку, если вы пытаетесь его использовать. Попробуйте/catch — самый надежный способ обнаружения совместимости браузера.

try {
    new PerformanceObserver(entryList => {
        console.log(entryList.getEntriesByName("first-contentful-paint"));
    })
    // Some browsers throw when 'type' is passed:
    .observe({ type: "paint", buffered: true });
}
catch (e) { /* Not Supported */ }

3. Стили к документу не считают

Некоторые страницы будут применять встроенные стили к их HTML или Тело Элементы, такие как фоновый цвет, границы или очертания. Пока эти стили делают Краска На экран они не считаются метрикой первой кончальной краски.

Улучшение ваших баллов FCP

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

  • Уменьшить работу сервера и кеш дорогих действий
  • Используйте сжатие на вашем HTML, CSS и другие источники
  • Уменьшите критические CSS, необходимые для оказания страницы
  • Используйте меньше и более эффективные шрифты
  • Подавать контент через CDN
  • Используйте эффективные настройки хэширования HTTP

Все улучшения, которые вы делаете на FCP, также помогут вашему Крупнейшая кончанная краска баллы.

Заключение

Первая кончанная метрика краски является важной частью истории веб-характеристик, но это не единственная! Узнайте больше о других метриках веб-производительности и как измерить их в Окончательное руководство по измерению веб-характеристики Отказ

Оригинал: «https://www.codementor.io/@todd659/using-first-contentful-paint-fcp-1htul4eapa»