Was macht die Zeichenfolge #! tun, wenn Facebook es in seine URL steckt, wenn ich besuche? Ich kenne die Rolle des # -Zeichens bei der Angabe einer Ankerposition auf der Seite. Aber was ist #! zum?
Was macht die Zeichenfolge #! tun, wenn Facebook es in seine URL steckt, wenn ich besuche? Ich kenne die Rolle des # -Zeichens bei der Angabe einer Ankerposition auf der Seite. Aber was ist #! zum?
Antworten:
Dadurch sollten Seiten für Google und Freunde crawlbar sein:
http://code.google.com/web/ajaxcrawling/docs/getting-started.html
http://googlewebmastercentral.blogspot.com/2009/10/proposal-for-making-ajax-crawlable.html
Die Lösung funktioniert wie folgt: Der Crawler findet eine hübsche AJAX-URL (dh eine URL, die ein #! -Hash-Fragment enthält). Anschließend wird der Inhalt für diese URL in leicht geänderter Form von Ihrem Server angefordert.
Ihr Webserver gibt den Inhalt in Form eines HTML-Snapshots zurück, der dann vom Crawler verarbeitet wird. In den Suchergebnissen wird die ursprüngliche URL angezeigt.
Dieser Artikel erklärt, wie es auf leicht verständliche Weise funktioniert.
Wenn ich dagegen den Browser auf http://twitter.com/#!/timbray zeige , passiert Folgendes:
Der Browser zieht diese Adresse auseinander und speichert das Teil nach dem "#", nämlich! / Timbray, lokal. Dieser Teil wird technisch als "Fragment-ID" bezeichnet, aber sagen wir "Hashbang".
Es stellt eine Verbindung zu twitter.com her und sendet eine mehr oder weniger leere Abfrage, da die Adresse ausschließlich Hashbang war.
Der Server weiß nicht, nach welchem Tweetstream gefragt wird, da diese Informationen im Hashbang enthalten waren. Was es jedoch sendet, ist ein Link zu einem (wahrscheinlich großen und komplexen) Teil von JavaScript.
Der Browser ruft das JavaScript ab und führt diesen Code aus.
Das JavaScript fischt den Hashbang (! / Timbray, erinnerst du dich?) Aus dem Browserspeicher und zieht basierend auf seinem Wert ein paar weitere Teile vom Server herunter und erstellt etwas, das wie mein Tweetstream aussieht.
Im Web heißt es Hashbang . In der Unix-Umgebung ist es als Shebang bekannt .
Dieser Artikel enthält eine detaillierte Beschreibung der Konsequenzen, die sich aus der Verwendung von Hashbangs in URLs ergeben, wobei das Lifehacker-Redesign als Fallstudie verwendet wird.
Warum also einen Hash-Bang verwenden, wenn es sich um eine künstliche URL handelt und eine URL neu formatiert werden muss, bevor sie auf eine richtige URL verweist, die tatsächlich Inhalt zurückgibt?
Von allen Gründen ist der stärkste „Weil es cool ist“. Ich sagte am stärksten nicht stark .
Danny Thorpe beschreibt die Nebenwirkungen in diesem Artikel aus seinem Blog.
Ein weiterer Nebeneffekt bei der Verwendung von URL-Fragmenten besteht darin, dass die Fragmente nicht im Browserverlauf angezeigt werden. Aufgrund der URL-Äquivalenzregeln, bei denen URL-Fragmente ignoriert werden, werden mehrere URLs, die sich nur im Fragment unterscheiden, nur als ein Eintrag im Browserverlauf angezeigt. Dies ist sinnvoll, wenn Sie URL-Fragmente so verwenden, wie sie ursprünglich vorgesehen waren - um auf bestimmte Unterabschnitte derselben Basisseite zu verweisen.
Ich bin mir zwar nicht sicher, ob ich mit allen Davies-Beschimpfungen gegen LifeHacker einverstanden bin, aber ich bin damit einverstanden, dass der Aufbau eines gesamten Inhaltssystems ausschließlich auf der Grundlage des Hash-Bang-URL-Musters ohne nennenswerten statischen HTML-Inhalt unabhängig von JavaScript wahrscheinlich nicht die beste Verwendung von ist Hash-Bang-URL-Muster.
Ryan Grove, YUI-Ingenieur bei Yahoo!, empfiehlt die Verwendung nicht und erklärt, warum diese Frage auf Quora beantwortet wird .
Nein, Hashbang-URLs werden nicht empfohlen. Aber es ist wichtig, absolut klar zu sein, was dies bedeutet, also lesen Sie weiter.
und eine Zusammenfassung:
- "Hash" -URLs und "Hashbang" -URLs sind nicht dasselbe, obwohl "Hashbang" leider der generische Name für "Hash-URLs, die JavaScript-basierte Logik auslösen" geworden ist.
- Hash-URLs werden niemals an den Server gesendet, daher sind sie ohne JavaScript nutzlos, wenn Sie darauf angewiesen sind, dass sie die Anwendungslogik auslösen.
- Da für Hash-URLs JS erforderlich ist, müssen Sie entweder alle vorhandenen URLs auflösen oder einen JS-URL-Handler für immer beibehalten, wenn Sie sich jemals dazu entschließen, Ihr URL-Schema zu ändern.
- "Hashbang" -URLs machen Ihre Seite nicht automatisch für Suchmaschinen indizierbar. Sie müssen noch viel serverseitige Arbeit leisten, um dies zu erreichen.
- Selbst wenn Sie das vollständige Google Ajax-Crawling-Schema korrekt unterstützen, hilft Ihnen dies nur bei Google. Sie sind immer noch mit den anderen Suchmaschinen verarscht.
Überprüfen Sie diese Frage auch beim Stackoverflow.
Dies teilt Google mit, wie die Seite indiziert werden soll.