Spec-Zone.ru › Web APIs

VisibilityStateEntry

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Экспериментально: Это экспериментальная технология
Перед использованием в продакшене внимательно проверьте таблицу совместимости с браузерами.

Интерфейс VisibilityStateEntry предоставляет временные метки изменений состояния видимости страницы, т. е. когда вкладка переключается с фонового на передний или наоборот.

Это можно использовать для точного определения изменений видимости на временной шкале производительности и сопоставления их с другими записями производительности, такими как "первое отображение контента" (см. PerformancePaintTiming).

Существует две ключевые временные метки изменений состояния видимости, которые сообщает этот API:

  • visible: Время, когда страница становится видимой (т. е. когда её вкладка переходит в фокус).
  • hidden: Время, когда страница скрывается (т. е. когда её вкладка переходит на задний план).

Временная шкала производительности всегда будет содержать запись "visibility-state" с startTime 0 и name, представляющей начальное состояние видимости страницы.

Примечание: Как и другие API производительности, этот API расширяет PerformanceEntry.

PerformanceEntry VisibilityStateEntry

Свойства экземпляра

Этот интерфейс не имеет свойств, но он расширяет свойства PerformanceEntry, уточняя и ограничивая их следующим образом:

PerformanceEntry.entryType Экспериментально

Возвращает "visibility-state".

PerformanceEntry.name Экспериментально

Возвращает либо "visible" , либо "hidden".

PerformanceEntry.startTime Экспериментально

Возвращает timestamp момент изменения состояния видимости.

PerformanceEntry.duration Экспериментально

Возвращает 0.

Методы экземпляра

Этот интерфейс не имеет методов.

Примеры

Базовое использование

Следующая функция может использоваться для записи таблицы всех "visibility-state" записей производительности в консоль:

function getVisibilityStateEntries() {
  const visibilityStateEntries =
    performance.getEntriesByType("visibility-state");
  console.table(visibilityStateEntries);
}

Сопоставление изменений состояния видимости с временными метками отрисовки

Нижеприведенная функция получает ссылку на все "visibility-state" записи и запись "first-contentful-paint", а затем использует Array.some() для проверки, произошли ли какие-либо "hidden" записи видимости до первого отображения контента:

function wasHiddenBeforeFirstContentfulPaint() {
  const fcpEntry = performance.getEntriesByName("first-contentful-paint")[0];
  const visibilityStateEntries =
    performance.getEntriesByType("visibility-state");
  return visibilityStateEntries.some(
    (e) => e.startTime < fcpEntry.startTime && e.name === "hidden",
  );
}

Спецификации

Спецификация
HTML
# the-visibilitystateentry-interface

Совместимость с браузерами

Рабочий стол Мобильное устройство
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
VisibilityStateEntry 115 115 Нет 101 Нет 115 Нет 77 Нет 23.0 115
duration 115 115 Нет 101 Нет 115 Нет 77 Нет 23.0 115
entryType 115 115 Нет 101 Нет 115 Нет 77 Нет 23.0 115
name 115 115 Нет 101 Нет 115 Нет 77 Нет 23.0 115
startTime 115 115 Нет 101 Нет 115 Нет 77 Нет 23.0 115

См. также

API видимости страницы

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/VisibilityStateEntry

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API