PerformanceResourceTiming: свойство domainLookupEnd
Базовая линия Широко используется
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна в браузерах с сентября 2017 года.
Примечание: Эта функция доступна в Web Workers.
Это domainLookupEnd только для чтения свойство возвращает timestamp сразу после того, как браузер завершит поиск доменного имени для ресурса.
Если у пользователя есть информация о домене в кэше, domainLookupStart и domainLookupEnd представляют собой моменты времени, когда пользовательский агент начинает и завершает получение данных о домене из кэша.
Значение
Свойство domainLookupEnd может принимать следующие значения:
- A
DOMHighResTimeStampпредставляющий время сразу после завершения браузером поиска имени домена для ресурса. -
0если ресурс был мгновенно получен из кэша. -
0если запрос ресурса происходит из другого источника (кросс-доменный запрос) и заголовок ответа HTTPTiming-Allow-Originне используется.
Примеры
Измерение времени поиска DNS
Свойства domainLookupEnd и domainLookupStart можно использовать для измерения времени, необходимого для поиска DNS.
const dns = entry.domainLookupEnd - entry.domainLookupStart;
Пример использования PerformanceObserver, который уведомляет о новых resource записях производительности, как только они записываются в хронологии производительности браузера. Используйте опцию buffered для доступа к записям, которые существовали до создания наблюдателя.
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
const dns = entry.domainLookupEnd - entry.domainLookupStart;
if (dns > 0) {
console.log(`${entry.name}: DNS lookup duration: ${dns}ms`);
}
});
});
observer.observe({ type: "resource", buffered: true });
Пример использования Performance.getEntriesByType(), который показывает только resource записи производительности, присутствующие в хронологии производительности браузера в момент вызова этого метода:
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
const dns = entry.domainLookupEnd - entry.domainLookupStart;
if (dns > 0) {
console.log(`${entry.name}: DNS lookup duration: ${dns}ms`);
}
});
Информация о времени кросс-доменных запросов
Если значение свойства domainLookupEnd равно 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 | |
domainLookupEnd |
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/domainLookupEnd