Frage

Facebook macht Ajax-Verlauf (Zurück- und Vorwärts-Schaltfläche) und Lesezeichen mit #! statt nur # in der URL.Ist es immer eine gute Idee, das zu tun, weil ich dachte, dass ein gewöhnlicher Anker den Ajax History-Mechanismus stören könnte, um ihn zur Verarbeitung eines normalen Ankers zu veranlassen.

Die Ajax History-Funktion verarbeitet also nur dann einen Hash-Teil, wenn sie #! statt nur # sieht.

Und ist die Verwendung von ! mit den wichtigsten Browsern kompatibel?Wenn Facebook ! verwendet, ist eine Vermutung, dass es ziemlich gut unterstützt wird.

War es hilfreich?

Lösung

Siehe AJAX-Anwendungen crawlbar machen von Google für einen möglichen Anwendungsfall (weiß nicht, ob Facebook dieses Fragment deshalb verwendet hat).

Andere Tipps

Update: Diese Antwort wurde durch diese Artikel ersetzt. Sie behandelt die Probleme mit Hashbang (#!), Hashes (#) und der HTML5-Verlaufs-API (pushState, popState) und die Lösungen.

In Bezug auf die Benutzerfreundlichkeit auf Ihrer Website spielt dies keine Rolle und Sie können alles verwenden, was Sie möchten.

In Bezug auf die Suchmaschinenoptimierung bieten sowohl das Vorhandensein als auch das Nichtvorhandensein unterschiedliche Wege, um nach unten zu gehen.

Beispielsweise verwendet Facebook das !gemäß Google-Vorschlag, um Ajax-Anwendungen crawlbar zu machen. Hinzufügen des !teilt Google mit, dass es diese Ajax-Anfrage abhören und diese URL zu den Suchmaschinenergebnissen hinzufügen soll.Dies ist großartig für Websites, die Ajax bereits implementiert haben, da Sie lediglich das ! hinzufügen müssen.

Der Nachteil davon ist, dass es nur das Problem löst, Ihr Ajax crawlbar zu machen.Es löst nicht die Probleme von:

  • Saubere und konsistente URLs für Ajax- und Nicht-Ajax-Benutzer.Z.B.Sie könnten mit www.facebook.com/profile.php?pid=123#!profile.php?pid=123 enden
  • Die Website für Nicht-Ajax-Benutzer zugänglich halten.
  • Die gleichen URLs für Ajax- und Nicht-Ajax-Benutzer beibehalten.
  • Erfordert einige sehr komplizierte serverseitige Änderungen zum Escape- und Übersetzen von Zuständen in Bezug auf Abfragezeichenfolgen.
  • Es ist nicht mit der neuen HTML5 PopState-Funktionalität kompatibel, die diese Probleme wirklich lösen soll.

Für Websites, die derzeit Ajax nicht für alles verwenden, ist es aufgrund der oben genannten Probleme viel besser, den Google-Vorschlag NICHT zu verwenden, da dies nur eine Problemumgehung für Websites wie Facebook ist, die Ajax-verrückt wurden und eine verzweifelte Lösung für SEO benötigten.Es gibt Alternativen, die mehr dieser Probleme lösen (und mit dem jetzt verfügbaren HTML5 PopState alle Probleme lösen können).Eine solche Alternative ist jQuery Ajaxy (wie auf balupton.com zu sehen), die funktioniert, indem Sie Ihre Website einfach in eine Ajax-Anwendung aktualisieren, während das Erlebnis für Ajax-aktivierte Benutzer reich und interaktiv bleibt und weiterhin perfekt für Ajax-deaktivierte Benutzer funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top