PerformanceResourceTiming: свойство requestStart
Базовая линия Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2017 года.
Примечание: Эта функция доступна в Web Workers.
Это requestStart свойство считывания, возвращающее timestamp времени непосредственно перед тем, как браузер начинает запрашивать ресурс у сервера, кэша или локального ресурса. Если соединение с транспортом прерывается, и браузер повторяет запрос, значение будет соответствовать началу повторного запроса.
Для requestStart нет свойства end. Для измерения времени запроса вычислите responseStart - requestStart (см. пример ниже).
Значение
Свойство requestStart может иметь следующие значения:
DOMHighResTimeStampпредставляющий время непосредственно перед тем, как браузер начнёт запрашивать ресурс у сервера.-
0если ресурс мгновенно извлечён из кэша. -
0если ресурс является запросом с другого домена и не используется заголовок ответа HTTPTiming-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
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
См. также
© 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