Hash-Routing
Hash-Routing ist eine clientseitige Technik, die in Single-Page-Anwendungen (SPAs) verwendet wird, um Navigation und Zustandsänderungen zu verwalten, ohne die gesamte Seite neu zu laden.
Historischer Kontext
Frühe SPAs konnten den Pfad Teil der URL nicht ändern, ohne die Seite neu zu laden. Um dies zu umgehen, verwendeten Entwickler das hash-basierte SPA-Routing, das die Route im "Fragment" speichert, dem Teil der URL, der nach dem Symbol #
folgt. Häufige Muster waren #/profile
und #!/profile
. Anwendungen überprüften kontinuierlich window.location.hash
(oder hörten auf das hashchange
Ereignis, als es später unterstützt wurde), um Fragmentänderungen während der Benutzernavigation zu erkennen; die SPA aktualisierte dann die Ansicht, wann immer sich das Fragment änderte.
Einschränkungen
Obwohl dieser Ansatz keine Server-Einrichtung benötigte, hatte er Einschränkungen: Die Unterstützung für vorwärts/rückwärts war begrenzt, Seiten mit hash-basierten URLs wurden nicht korrekt indexiert (Suchmaschinen ignorierten das Fragment), und die resultierenden URLs wurden als unordentlich angesehen.
Hash-basiertes Routing wird jetzt als veraltete Technik betrachtet. Es wird, wenn überhaupt, nur als Fallback für sehr alte Browser oder für statische Hosts verwendet, bei denen serverseitiges Routing nicht konfiguriert werden kann.
Moderne Alternativen
Bis 2012 unterstützten alle großen Browser (Chrome 5, Safari 5, Firefox 4) die History API. SPAs konnten nun pushState()
, replaceState()
und das popstate
Ereignis aufrufen, um den Verlaufstack des Browsers zu manipulieren, direkt zu Pfaden wie /profile
zu wechseln und die Ansicht ohne vollständiges Neuladen zu aktualisieren. Dies ermöglichte auch sauberere URLs ohne Hash-Fragmente.