In Web-URLs einschließlich Facebook sehe ich die Zeichenfolge / #! erscheint. Was ist der Zweck davon?


7

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:


8

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.


Ja, das ist eine Antwort. Vielen Dank. Ja, wie würden Sie eine sich dynamisch verschiebende Seite indizieren ... coole Infos. Danke
estphan500

1

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.


1
Willkommen bei Webanwendungen! Während dies theoretisch die Frage beantworten kann, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Schauen Sie sich die Bearbeitung von @Sathya an, um ein gutes Beispiel für eine Antwort zu erhalten. Danke
Codierungsbadger

1

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:

  1. "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.
  2. 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.
  3. 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.
  4. "Hashbang" -URLs machen Ihre Seite nicht automatisch für Suchmaschinen indizierbar. Sie müssen noch viel serverseitige Arbeit leisten, um dies zu erreichen.
  5. 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.


1
"Hier, hier und hier" sagt uns nicht viel Nützliches. Könnten Sie Ihre Antwort so bearbeiten, dass sie mindestens eine Zusammenfassung darüber enthält, worüber diese Themen sprechen und wie sie relevant sind?
nhinkle


-2

Es ist ein Ankerpunkt für den oberen Rand einer Seite. Einige Webseiten haben an einer Stelle auf der Seite einen Link "oben", der nach oben springt. Der Link zeigt auf "#".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.