Signatur
Beschreibung
performance.timing.redirectStart gehört zur alten Navigation-Timing-API (Level 1). Die Eigenschaft liefert den Zeitstempel in Millisekunden seit dem UNIX-Epoch, an dem der Abruf begann, der die erste HTTP-Weiterleitung (z. B. 301 oder 302) ausgelöst hat.
Einen Wert ungleich 0 gibt es nur, wenn es tatsächlich Weiterleitungen gab und alle Weiterleitungen denselben Ursprung wie das Zieldokument haben. Gab es keine Weiterleitung oder war eine davon ursprungsübergreifend, ist der Wert 0.
Zusammen mit redirectEnd kann man damit messen, wie viel Ladezeit durch Weiterleitungsketten verloren geht, etwa beim Wechsel von http:// auf https:// oder beim Anhängen eines Schrägstrichs. Für neuen Code sollte man stattdessen PerformanceNavigationTiming.redirectStart aus performance.getEntriesByType("navigation") nutzen. Dort sind die Werte hochauflösende, relative Zeitstempel (DOMHighResTimeStamp) statt absoluter Epoch-Millisekunden.
Rückgabewert
unsigned long long). Er ist 0, wenn keine Weiterleitung stattfand oder eine davon ursprungsübergreifend war.Beispiele
Dauer der Weiterleitungen messen (veraltete API)
const t = performance.timing;
if (t.redirectStart === 0) {
console.log('Keine (messbare) Weiterleitung');
} else {
const dauer = t.redirectEnd - t.redirectStart;
console.log(`Weiterleitungen dauerten ${dauer} ms`);
}
Moderne Alternative mit PerformanceNavigationTiming
const [nav] = performance.getEntriesByType('navigation');
if (nav && nav.redirectCount > 0 && nav.redirectStart > 0) {
const dauer = nav.redirectEnd - nav.redirectStart;
console.log(`${nav.redirectCount} Weiterleitung(en), ${dauer.toFixed(1)} ms`);
} else {
console.log('Keine gleich-ursprüngliche Weiterleitung');
}
Feature-Erkennung mit Rückfall auf die alte API
const redirectDauer = () => {
const [nav] = performance.getEntriesByType?.('navigation') ?? [];
if (nav) return nav.redirectEnd - nav.redirectStart;
const t = performance.timing;
return t.redirectStart ? t.redirectEnd - t.redirectStart : 0;
};
window.addEventListener('load', () => {
console.log('Redirect-Zeit:', redirectDauer(), 'ms');
});
// Wichtig · Fallstricke
- Veraltet:
PerformanceTimingist in der Spezifikation als veraltet markiert. Die Browser unterstützen es noch, neuer Code sollte aberPerformanceNavigationTimingverwenden. - Ursprungsübergreifende Weiterleitungen liefern aus Datenschutzgründen immer
0, zum Beispiel ein Weg vonexample.comübertracker.netzurück. Ein Wert von0bedeutet also nicht sicher, dass es keine Weiterleitung gab. - Absolute Zeit: Der Wert ist eine Epoch-Zeit und kein relativer Wert. Man sollte ihn nicht mit
performance.now()mischen, sondern nur mit anderenperformance.timing-Feldern verrechnen. - Die Eigenschaft ist nur im Fenster-Kontext verfügbar, nicht in Web Workern.