PerformanceResourceTiming: свойство fetchStart
Базовая Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2017 года.
Примечание: Эта функция доступна в Web Workers.
Чтение-только свойство fetchStart представляет собой timestamp непосредственно перед началом браузером загрузки ресурса.
Если есть HTTP-редиректы, свойство возвращает время непосредственно перед началом работы пользовательского агента по загрузке конечного ресурса в цепочке редиректов.
В отличие от многих других PerformanceResourceTiming свойств, свойство fetchStart доступно для запросов к ресурсам других доменов без необходимости в HTTP-заголовке Timing-Allow-Origin.
Значение
A DOMHighResTimeStamp непосредственно перед началом браузером загрузки ресурса.
Примеры
Измерение времени загрузки (без редиректов)
Свойства fetchStart и responseEnd можно использовать для измерения общего времени загрузки конечного ресурса (без редиректов). Если вы хотите учесть редиректы, общее время загрузки указано в свойстве duration.
const timeToFetch = entry.responseEnd - entry.fetchStart;
Пример использования PerformanceObserver, который уведомляет о новых resource записях производительности, как только они регистрируются в временной шкале производительности браузера. Используйте опцию buffered для доступа к записям, существовавшим до создания наблюдателя.
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
const timeToFetch = entry.responseEnd - entry.fetchStart;
if (timeToFetch > 0) {
console.log(`${entry.name}: Time to fetch: ${timeToFetch}ms`);
}
});
});
observer.observe({ type: "resource", buffered: true });
Пример использования Performance.getEntriesByType(), который показывает только resource записи производительности, присутствующие в временной шкале производительности браузера в момент вызова этого метода:
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
const timeToFetch = entry.responseEnd - entry.fetchStart;
if (timeToFetch > 0) {
console.log(`${entry.name}: Time to fetch: ${timeToFetch}ms`);
}
});
Спецификации
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
fetchStart |
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/fetchStart