rel="prefetch" HTML-Attributswert
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Das prefetch Schlüsselwort für das rel Attribut des <link> Elements gibt Browsern einen Hinweis, dass der Benutzer die Zielressource wahrscheinlich für zukünftige Navigationen benötigt. Daher kann der Browser die Benutzererfahrung verbessern, indem er die Ressource im Voraus abruft und zwischenspeichert. <link rel="prefetch"> wird für gleichseitige Navigationsressourcen oder für Teilressourcen verwendet, die von gleichseitigen Seiten genutzt werden.
Das Ergebnis wird im HTTP-Cache auf der Festplatte gespeichert. Deshalb ist es nützlich für das Prefetching von Teilressourcen, auch wenn sie nicht von der aktuellen Seite verwendet werden. Sie könnten es auch verwenden, um das nächste Dokument vorab abzurufen, das der Benutzer wahrscheinlich auf der Website besuchen wird. Dabei sollten Sie jedoch auf die Header achten – zum Beispiel könnten bestimmte Cache-Control Header das Prefetching blockieren (wie no-cache oder no-store).
Hinweis: Aufgrund solcher Einschränkungen wird empfohlen, stattdessen die Speculation Rules API für Dokument-Prefetches zu verwenden, wo sie unterstützt wird.
<link rel="prefetch"> ist funktional gleichwertig mit einem fetch() Aufruf mit der Option priority: "low", außer dass ersteres im Allgemeinen eine noch niedrigere Priorität hat und der Anfrage ein Sec-Purpose: prefetch Header hinzugefügt wird. Beachten Sie, dass Browser im Allgemeinen Prefetch-Ressourcen gegenüber Preload-Ressourcen (z. B. angefordert über <link rel="preload">) eine niedrigere Priorität zuweisen – die aktuelle Seite ist wichtiger als die nächste.
Die Abrufanfrage für eine prefetch-Operation führt zu einer HTTP-Anfrage, die den HTTP-Header Sec-Purpose: prefetch enthält. Ein Server könnte diesen Header verwenden, um die Cache-Timeouts für die Ressourcen zu ändern oder andere spezielle Handlungen auszuführen.
Die Anfrage wird außerdem den Sec-Fetch-Dest Header mit dem Wert empty enthalten.
Der Accept Header in der Anfrage wird den Wert verwenden, der für normale Navigationsanfragen verwendet wird. Dies erlaubt es dem Browser, die passenden zwischengespeicherten Ressourcen nach der Navigation zu finden.
Beispiele
>Einfaches Prefetch
<link rel="prefetch" href="main.js" />
Navigation und Unterressourcen-Prefetches
Prefetching kann verwendet werden, um sowohl HTML als auch Teilressourcen für eine mögliche nächste Navigation abzurufen. Ein häufiges Anwendungsbeispiel ist eine Website-Startseite, die "schwerere" Ressourcen abruft, die vom Rest der Website verwendet werden.
<link rel="prefetch" href="/app/style.css" />
<link rel="prefetch" href="/landing-page" />
Die Auswirkungen der Cache-Partitionierung
Viele Browser implementieren jetzt eine Form von Cache-Partitionierung, was <link rel="prefetch"> für Ressourcen, die für verschiedene Top-Level-Websites verwendet werden sollen, nutzlos macht. Dies schließt das Hauptdokument bei der plattformübergreifenden Navigation ein. Zum Beispiel wäre das folgende Prefetch:
<link rel="prefetch" href="https://news.example/article" />
Von https://aggregator.example/ nicht zugänglich.
Spezifikationen
| Spezifikation |
|---|
| HTML> # link-type-prefetch> |
Browser-Kompatibilität
Siehe auch
- Spekulatives Laden für einen Vergleich von
<link rel="prefetch">und anderen ähnlichen Leistungsverbesserungsfunktionen.