Spec-Zone.ru › Web APIs

Документ: событие prerenderingchange

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

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

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

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

Событие prerenderingchange срабатывает на пререндеренном документе при его активации (т.е. когда пользователь просматривает страницу).

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика события.

addEventListener("prerenderingchange", (event) => {});

prerenderingchange = (event) => {};

Тип события

Общее Event.

Примеры

Предотвращение выполнения кода во время пререндеринга

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

Код проверяет, выполняется ли пререндеринг с помощью Document.prerendering, и если да, добавляет обработчик события для запуска функции инициализации аналитики после активации страницы. На странице, которая не пререндерилась, код аналитики запускается немедленно.

if (document.prerendering) {
  document.addEventListener("prerenderingchange", initAnalytics, {
    once: true,
  });
} else {
  initAnalytics();
}

Обратите внимание, что такой код не следует использовать для измерения частоты активации пререндеринга, потому что код может запуститься после того, как уже активировалась пререндеренная страница.

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

Измерение активаций пререндеринга

Этот код показывает, как измерить частоту активации пререндеринга. Он использует prerenderingchange для отслеживания событий активации и Performance.getEntriesByType() для отслеживания активаций навигации.

if (document.prerendering) {
  document.addEventListener(
    "prerenderingchange",
    () => {
      console.log("Prerender activated after this script ran");
    },
    { once: true },
  );
} else if (performance.getEntriesByType("navigation")[0]?.activationStart > 0) {
  console.log("Prerender activated before this script ran");
} else {
  console.log("This page load was not via prerendering");
}

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

Спецификация
Пререндеринг (переработанный)
# eventdef-document-prerenderingchange
Пререндеринг (переработанный)
# dom-document-onprerenderingchange

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari на iOS Samsung Internet WebView для Android
prerenderingchange_event 108 108 Нет 94 Нет 108 Нет 73 Нет 21.0 108

См. также

  • API правил спекуляций
  • prerendering свойство
  • PerformanceNavigationTiming.activationStart свойство

© 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/Document/prerenderingchange_event

Spec-Zone.ru

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