HTML5 Hash Bang

Was ist Hash und macht Bang? Zwei Zeichen aus dem ASCII Alphabet - das # und der !. In Kombination werden Sie als Hashbang bezeichnet und werden zur Client Seitigen Steuerung von Web Anwendungen verwendet.

Das Problem von Hashbangs beginnt bereits mit dem #. Im Grunde genommen versteckt die Technik die eigentlichen Seiteninhalte. Die Angaben nach dem Hash  werden vom Browser nicht mehr an den Server übergeben. Der Teil nach dem Hash wird als Fragment Identifier bezeichnet und ist genau genommen nicht Bestandteil der URL.
Speziell in Single Pages Applications wird ein Routing Konzept benötigt, das es am Client erlaubt die Url auszuwerten. Facebook und auch Twitter haben davon, in der Vergangenheit, ausgiebig gebrauch gemacht. Auch AngularJS bietet ein optionales Routing an.

Mit der Url https://twitter.com/#!/ppedv wird stand heute allerdings auf die Adresse https://twitter.com/ppedv umgeleitet.

Wie das Fiddlertool zeigt, wird im Initialen Request der Hash nicht an den Server übermittelt. Erst mit einem weiteren Request initiiert durch JavaScript aus dem ersten Request, wird die eigentliche URL geladen.

image

Twitter scheint den SPA Ansatz damit nur kurz zu nutzen um den Hashbank auszulesen und wechselt dann auf Server generierten HTML Code. Die Daten stecken also nicht in JSON sondern ganz klassisch im HTML Code.

Mit HTML5 wird von diesem Missbrauch des Anchor Tags nun obsolet. Es existiert der sogenannte PushState (aus der Session History Api). Dieser wird von Frameworks wie Angular.js auch verwendet um Client seitiges URL Routing zu nutzen. Man muss es aktuell bei Angular i JavaScript Code auch aktivieren. Damit lässt sich die Url in der Browser Leiste beliebig schreiben und lesen.

Kommentare sind geschlossen