PerformanceResourceTiming: domainLookupEnd-Eigenschaft
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die schreibgeschützte Eigenschaft domainLookupEnd
gibt den Zeitstempel
unmittelbar nach Abschluss der DNS-Abfrage für die Ressource durch den Browser zurück.
Wenn der User Agent die Domain-Informationen im Cache hat, geben domainLookupStart
und domainLookupEnd
die Zeiten an, zu denen der User Agent die Abfrage der Domain-Daten aus dem Cache beginnt und beendet.
Wert
Die domainLookupEnd
-Eigenschaft kann die folgenden Werte haben:
- Ein
DOMHighResTimeStamp
, der die Zeit unmittelbar nach Abschluss der DNS-Abfrage für die Ressource durch den Browser darstellt. 0
, wenn die Ressource unmittelbar aus einem Cache abgerufen wurde.0
, wenn die Ressource eine Cross-Origin-Anfrage ist und keinTiming-Allow-Origin
HTTP-Antwortheader verwendet wird.
Beispiele
Messung der DNS-Abfragezeit
Die Eigenschaften domainLookupEnd
und domainLookupStart
können verwendet werden, um zu messen, wie lange die DNS-Abfrage dauert.
const dns = entry.domainLookupEnd - entry.domainLookupStart;
Beispiel mit einem PerformanceObserver
, der über neue resource
-Performanceeinträge benachrichtigt wird, wenn diese in der Performance-Timeline des Browsers aufgezeichnet werden. Verwenden Sie die Option buffered
, um auf Einträge zuzugreifen, die vor der Erstellung des Observers vorhanden waren.
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 });
Beispiel mit Performance.getEntriesByType()
, das nur die resource
-Performanceeinträge zeigt, die zum Zeitpunkt des Aufrufs dieser Methode in der Performance-Timeline des Browsers vorhanden sind:
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`);
}
});
Cross-Origin-Zeitinformationen
Wenn der Wert der domainLookupEnd
-Eigenschaft 0
ist, könnte es sich um eine Cross-Origin-Anfrage handeln. Um Cross-Origin-Zeitinformationen sichtbar zu machen, muss der Timing-Allow-Origin
HTTP-Antwortheader gesetzt werden.
Zum Beispiel sollte die Cross-Origin-Ressource, um https://developer.mozilla.org
zu erlauben, Timing-Ressourcen zu sehen, senden:
Timing-Allow-Origin: https://developer.mozilla.org
Spezifikationen
Specification |
---|
Resource Timing # dom-performanceresourcetiming-domainlookupend |
Browser-Kompatibilität
BCD tables only load in the browser