rel="prefetch"
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Das prefetch Schlüsselwort für das rel-Attribut des <link>-Elements bietet einen Hinweis für Browser, dass der Benutzer die Zielressource wahrscheinlich für zukünftige Navigationen benötigt. Daher kann der Browser die Benutzererfahrung wahrscheinlich verbessern, indem er die Ressource vorab abruft und zwischenspeichert. <link rel="prefetch"> wird für Navigationen innerhalb derselben Seite oder für Unterressourcen, die von Seiten derselben Site verwendet werden, verwendet.
Das Ergebnis wird im HTTP-Cache auf der Festplatte gespeichert. Daher ist es nützlich, Unterressourcen vorab abzurufen, auch wenn sie auf der aktuellen Seite nicht verwendet werden. Sie könnten es auch verwenden, um das nächste Dokument vorab abzurufen, das der Benutzer wahrscheinlich auf der Site besuchen wird. Allerdings müssen Sie vorsichtig mit Headern sein — bestimmte Cache-Control-Header könnten das Vorabrufen blockieren (z. B. no-cache oder no-store).
Hinweis: Aufgrund solcher Einschränkungen wird empfohlen, die Speculation Rules API für Dokumentvorabrufe zu verwenden, wo sie unterstützt wird.
<link rel="prefetch"> ist funktional äquivalent zu einem fetch()-Aufruf mit einer priority: "low"-Option, wobei ersteres generell eine noch niedrigere Priorität hat und einen Sec-Purpose: prefetch-Header bei der Anfrage hat. Beachten Sie, dass Browser im Allgemeinen Vorabruf-Ressourcen eine niedrigere Priorität geben als Vorlade-Ressourcen (z. B. angefordert über <link rel="preload">) — die aktuelle Seite ist wichtiger als die nächste.
Der Abruf 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 Handhabungen durchzuführen.
Die Anfrage enthält auch den Sec-Fetch-Dest-Header mit dem Wert empty.
Der Accept-Header in der Anfrage entspricht dem Wert, der für normale Navigationsanfragen verwendet wird. Dies ermöglicht es dem Browser, die passenden zwischengespeicherten Ressourcen bei der folgenden Navigation zu finden.
Beispiele
>Grundlegendes Prefetch
<link rel="prefetch" href="main.js" />
Navigation und Unterressourcen-Prefetches
Vorabruf kann verwendet werden, um sowohl HTML als auch Unterressourcen für eine mögliche nächste Navigation abzurufen. Ein häufiges Anwendungsbeispiel ist eine Einstiegsseite einer Website, die schwergewichtigere Ressourcen der restlichen Site abruft.
<link rel="prefetch" href="/app/style.css" />
<link rel="prefetch" href="/landing-page" />
Die Auswirkungen der Cache-Partitionierung
Viele Browser implementieren jetzt eine Form der Cache-Partitionierung, die <link rel="prefetch"> für Ressourcen nutzlos macht, die für die Verwendung durch verschiedene Top-Level-Sites vorgesehen sind. Dies schließt das Hauptdokument beim Navigieren über Websites hinweg ein. Beispielsweise wäre der folgende Vorabruf:
<link rel="prefetch" href="https://news.example/article" />
nicht zugänglich von https://aggregator.example/.
Spezifikationen
| Specification |
|---|
| HTML> # link-type-prefetch> |
Browser-Kompatibilität
Siehe auch
- Spekulatives Laden für einen Vergleich von
<link rel="prefetch">und anderen ähnlichen Leistungsverbesserungsmerkmalen.