Spec-Zone.ru › Web APIs

PerformanceResourceTiming: свойство requestStart

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

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

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

Примечание: Эта функция доступна в Web Workers.

Это requestStart свойство считывания, возвращающее timestamp времени непосредственно перед тем, как браузер начинает запрашивать ресурс у сервера, кэша или локального ресурса. Если соединение с транспортом прерывается, и браузер повторяет запрос, значение будет соответствовать началу повторного запроса.

Для requestStart нет свойства end. Для измерения времени запроса вычислите responseStart - requestStart (см. пример ниже).

Значение

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

  • DOMHighResTimeStamp представляющий время непосредственно перед тем, как браузер начнёт запрашивать ресурс у сервера.
  • 0 если ресурс мгновенно извлечён из кэша.
  • 0 если ресурс является запросом с другого домена и не используется заголовок ответа HTTP Timing-Allow-Origin.

Когда значение firstInterimResponseStart не равно нулю, это означает, что оно должно быть таким же, как у requestStart для поддерживающих браузеров.

Если нет промежуточных ответов, requestStart такое же, как finalResponseHeadersStart, а firstInterimResponseStart равно 0.

Примеры

Измерение времени запроса

Свойства requestStart и responseStart можно использовать для измерения времени выполнения запроса.

const request = entry.responseStart - entry.requestStart;

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

const observer = new PerformanceObserver((list) => {
  list.getEntries().forEach((entry) => {
    const request = entry.responseStart - entry.requestStart;
    if (request > 0) {
      console.log(`${entry.name}: Request time: ${request}ms`);
    }
  });
});

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

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

const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
  const request = entry.responseStart - entry.requestStart;
  if (request > 0) {
    console.log(`${entry.name}: Request time: ${request}ms`);
  }
});

Информация о времени跨域

Если значение свойства requestStart равно 0, ресурс может быть запросом с другого домена. Чтобы увидеть информацию о времени запроса с другого домена, необходимо установить заголовок ответа HTTP Timing-Allow-Origin.

Например, чтобы https://developer.mozilla.org мог видеть временные ресурсы, ресурс с другого домена должен отправлять:

Timing-Allow-Origin: https://developer.mozilla.org

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

Спецификация
Временные метки ресурсов
# dom-performanceresourcetiming-requeststart

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
requestStart 43 12 35 30 11 43 35 30 11 4.0 43

См. также

  • Timing-Allow-Origin

© 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/PerformanceResourceTiming/requestStart

Spec-Zone.ru

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