Spec-Zone.ru › Web APIs

PerformanceNavigationTiming: свойство redirectCount

Базовая Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с октября 2021 года.

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

Чтение только свойство redirectCount возвращает число, представляющее количество перенаправлений с момента последней навигации без перенаправления в текущем контексте браузера.

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

Свойства redirectStart и redirectEnd могут использоваться для измерения времени перенаправления. Обратите внимание, что они вернут 0 для перенаправлений из другого источника.

Обратите внимание, что перенаправления на стороне клиента, такие как <meta http-equiv="refresh" content="0; url=https://example.com/"> не учитываются здесь.

Значение

Свойство redirectCount может принимать следующие значения:

  • Число, представляющее количество перенаправлений с момента последней навигации без перенаправления в текущем контексте браузера.
  • 0 если перенаправление происходит из другого источника.

Примеры

Регистрация записей с перенаправлениями

Свойство redirectCount можно использовать для проверки наличия одного или нескольких перенаправлений. Мы регистрируем имя записи и время перенаправления, если оно доступно.

Пример с использованием PerformanceObserver, который сообщает о новых navigation записях производительности по мере их записи в временной шкале производительности браузера. Используйте параметр buffered для доступа к записям, созданным до создания наблюдателя.

const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    const name = entry.name;
    const redirectCount = entry.redirectCount;
    const redirectTime = entry.redirectEnd - entry.redirectStart;
    if (redirectCount > 0) {
      console.log(`${name}: Redirect count: ${redirectCount}`);
      if (redirectTime > 0) {
        console.log(`${name}: Redirect time: ${redirectTime}ms`);
      }
    }
  });
});

observer.observe({ type: "navigation", buffered: true });

Пример с использованием Performance.getEntriesByType(), который отображает только navigation записи производительности, присутствующие в временной шкале производительности браузера в момент вызова этого метода:

const entries = performance.getEntriesByType("navigation");
entries.forEach((entry) => {
  const name = entry.name;
  const redirectCount = entry.redirectCount;
  const redirectTime = entry.redirectEnd - entry.redirectStart;
  if (redirectCount > 0) {
    console.log(`${name}: Redirect count: ${redirectCount}`);
    if (redirectTime > 0) {
      console.log(`${name}: Redirect time: ${redirectTime}ms`);
    }
  }
});

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

Спецификация
Navigation Timing Level 2
# dom-performancenavigationtiming-redirectcount

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
redirectCount 57 12 58 44 15 57 58 43 15.1 7.0 57

См. также

  • PerformanceResourceTiming.redirectStart
  • PerformanceResourceTiming.redirectEnd

© 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/PerformanceNavigationTiming/redirectCount

Spec-Zone.ru

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