VisibilityStateEntry
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.
Экспериментально: Это экспериментальная технология
Перед использованием в продакшене внимательно проверьте таблицу совместимости с браузерами.
Интерфейс VisibilityStateEntry предоставляет временные метки изменений состояния видимости страницы, т. е. когда вкладка переключается с фонового на передний или наоборот.
Это можно использовать для точного определения изменений видимости на временной шкале производительности и сопоставления их с другими записями производительности, такими как "первое отображение контента" (см. PerformancePaintTiming).
Существует две ключевые временные метки изменений состояния видимости, которые сообщает этот API:
-
visible: Время, когда страница становится видимой (т. е. когда её вкладка переходит в фокус). -
hidden: Время, когда страница скрывается (т. е. когда её вкладка переходит на задний план).
Временная шкала производительности всегда будет содержать запись "visibility-state" с startTime 0 и name, представляющей начальное состояние видимости страницы.
Примечание: Как и другие API производительности, этот API расширяет PerformanceEntry.
Свойства экземпляра
Этот интерфейс не имеет свойств, но он расширяет свойства 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 |
См. также
© 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