Wir leben in der Zukunft, also arbeiten wir natürlich an Wegen, das Web mit ausgefallenen neuen Taktiken zu beschleunigen, die über die üblichen Techniken hinausgehen, Seiten schlanker und verrückt zu cachen.
Eine Taktik, die Jahre zurückliegt, war InstantClick
Bevor Besucher auf einen Link klicken, fahren sie mit der Maus über diesen Link. Zwischen diesen beiden Ereignissen vergehen normalerweise 200 ms bis 300 ms (testen Sie es selbst hier). InstantClick nutzt diese Zeit, um die Seite vorab zu laden, sodass die Seite bereits vorhanden ist, wenn Sie klicken.
Clever, aber nicht so fortschrittlich wie das, was in diesen modernen Zeiten möglich ist. InstantClick berücksichtigt beispielsweise nicht, dass jemand möglicherweise keine Dinge vorab laden möchte, nach denen er nicht ausdrücklich gefragt hat, insbesondere wenn er sich in einem langsamen Netzwerk befindet.
Addy Osmani hat ein Dokument verfasst, das dies als „predictive fetching“ bezeichnet.
… gegeben eine beliebige Einstiegsseite könnte eine Lösung die Wahrscheinlichkeit berechnen, dass ein Benutzer eine bestimmte nächste Seite oder eine Gruppe von Seiten besucht, und Ressourcen für sie vorab abrufen, während der Benutzer seine aktuelle Seite noch betrachtet. Dies hat das Potenzial, die Seitenladeleistung für nachfolgende Seitenbesuche zu verbessern, da eine hohe Wahrscheinlichkeit besteht, dass eine Seite bereits im Cache des Benutzers vorhanden ist.
Stellen Sie sich vor: Wir könnten Analysedaten einfließen lassen und maschinelles Lernen darauf ansetzen. Addy verweist auch auf andere frühere Versuche wie Gatsby's Link und ein WordPress-Plugin.
Ein weiterer Anwärter ist Quicklink von Google.
Quicklink versucht, Navigationen zu nachfolgenden Seiten schneller zu laden. Es
- erkennt Links im Viewport (mithilfe von Intersection Observer)
- wartet, bis der Browser im Leerlauf ist (mithilfe von requestIdleCallback)
- prüft, ob der Benutzer sich nicht in einer langsamen Verbindung befindet (mithilfe von
navigator.connection.effectiveType) oder ob Data-Saver aktiviert ist (mithilfe vonnavigator.connection.saveData)- ruft URLs für die Links vorab ab (mithilfe von
<link rel=prefetch>oder XHR). Bietet einige Kontrolle über die Anforderungspriorität (kann auffetch()umgeschaltet werden, wenn unterstützt).
Keine maschinelle Intelligenz oder Analysen dort, aber vielleicht das bisher Cleverste. Mir gefällt wirklich der Geist, nur dann vorab abzurufen, wenn die Nutzungswahrscheinlichkeit hoch genug ist; der Browser ist sowieso im Leerlauf und das Netzwerk kann es bewältigen.
Hätte Predictive Fetching nicht die gleichen Probleme wie Instant Click? Sie laden immer noch Ressourcen in den Cache, die sie vielleicht nicht wollen, oder? Scheint, als würde dies bei einem langsamen/begrenzten Netzwerk immer noch Probleme verursachen.