Das Octothorpe / Nummernzeichen / Hashmark hat in einer URL eine besondere Bedeutung. Es identifiziert normalerweise den Namen eines Abschnitts eines Dokuments. Der genaue Begriff ist, dass der Text nach dem Hash der Ankerteil einer URL ist. Wenn Sie Wikipedia verwenden, werden Sie feststellen, dass die meisten Seiten ein Inhaltsverzeichnis haben, und Sie können mit einem Anker zu Abschnitten innerhalb des Dokuments springen, z.
https://en.wikipedia.org/wiki/Alan_Turing#Early_computers_and_the_Turing_test
https://en.wikipedia.org/wiki/Alan_Turing
identifiziert die Seite und Early_computers_and_the_Turing_test
ist der Anker. Der Grund, warum Facebook und andere Javascript-gesteuerte Anwendungen (wie meine eigenen Wood & Stones ) Anker verwenden, besteht darin, dass sie Seiten mit Lesezeichen versehen möchten (wie durch einen Kommentar zu dieser Antwort vorgeschlagen) oder den Zurück-Button unterstützen möchten, ohne die gesamte Seite von neu zu laden Server .
Um Lesezeichen und die Schaltfläche "Zurück" zu unterstützen, müssen Sie die URL ändern. Wenn Sie jedoch den Seitenteil (mit so etwas wie window.location = 'http://raganwald.com';
) in eine andere URL ändern oder keinen Anker angeben, lädt der Browser die gesamte Seite von der URL. Versuchen Sie dies in der Javascript-Konsole von Firebug oder Safari. Laden http://minimal-github.gilesb.com/raganwald
. Geben Sie nun in der Javascript-Konsole Folgendes ein:
window.location = 'http://minimal-github.gilesb.com/raganwald';
Sie sehen die Seitenaktualisierung vom Server. Geben Sie nun Folgendes ein:
window.location = 'http://minimal-github.gilesb.com/raganwald#try_this';
Aha! Keine Seitenaktualisierung! Art:
window.location = 'http://minimal-github.gilesb.com/raganwald#and_this';
Immer noch keine Aktualisierung. Verwenden Sie die Zurück-Schaltfläche, um festzustellen, ob sich diese URLs im Browserverlauf befinden. Der Browser bemerkt, dass wir uns auf derselben Seite befinden, aber nur den Anker ändern, damit er nicht neu geladen wird. Dank dieses Verhaltens können wir eine einzelne Javascript-Anwendung haben, die dem Browser als auf einer 'Seite' angezeigt wird, aber viele mit Lesezeichen versehene Abschnitte enthält, die die Schaltfläche "Zurück" berücksichtigen. Die Anwendung muss den Anker ändern, wenn ein Benutzer verschiedene "Status" eingibt. Wenn ein Benutzer die Schaltfläche "Zurück" oder ein Lesezeichen oder einen Link verwendet, um die Anwendung mit einem enthaltenen Anker zu laden, muss die Anwendung den entsprechenden Status wiederherstellen.
Da haben Sie es also: Anchors bieten Javascript-Programmierern einen Mechanismus, mit dem sie Lesezeichen-, Index- und Back-Button-freundliche Anwendungen erstellen können. Diese Technik hat einen Namen: Es handelt sich um eine Einzelseitenschnittstelle .
ps Diese Technik bietet einen vierten Vorteil: Das Laden von Seiteninhalten über AJAX und das anschließende Einfügen in das aktuelle DOM kann viel schneller sein als das Laden einer neuen Seite. Zusätzlich zur Geschwindigkeitssteigerung können weitere Tricks wie das Laden bestimmter Teile im Hintergrund unter der Kontrolle des Programmierers ausgeführt werden.
pps Angesichts all dessen ist das Knall- oder Ausrufezeichen ein weiterer Hinweis für den Webcrawler von Google, dass genau dieselbe Seite unter einer etwas anderen URL vom Server geladen werden kann. Siehe Ajax Crawling . Eine andere Technik besteht darin, jeden Link auf eine vom Server zugängliche URL zu verweisen und ihn dann mit unauffälligem Javascript in eine SPI mit einem Anker zu ändern.
Hier ist noch einmal der wichtigste Link: Das Single Page Interface Manifesto
shebang
war ... en.wikipedia.org/wiki/Shebang_%28Unix%29