4

Facebookは、URL#!だけでなく、Ajax履歴([戻る]および[進む]ボタン)とブックマークを使用しています。#通常のアンカーがAjax履歴メカニズムに干渉して、通常のアンカーの処理をトリガーする可能性があると考えていたので、これを行うことは常に良い考えですか。

したがって、Ajax履歴関数は、ハッシュ部分を処理するのは、だけでは#!なく、表示された場合のみ#です。

そして!、主要なブラウザと互換性のあるものを使用していますか?Facebookがを使用し!ている場合、それはかなりよくサポートされている可能性があると推測されます。

4

2 に答える 2

5

更新:この回答は、この記事によって置き換えられました。Hashbang(#!)、Hashes(#)、HTML5 History API(pushState、popState)の問題と解決策について説明します。

あなたのウェブサイトの使いやすさに関しては、それは問題ではなく、あなたは好きなものを使うことができます。

検索エンジン最適化に関しては、それを持っていることと持っていないことの両方が、ダウンするための異なる道を提供します。

たとえば、Facebookは!を使用します。Ajaxアプリケーションをクロール可能にするためのGoogleの提案によると。!を追加します そのajaxリクエストをリッスンし、そのURLを検索エンジンの結果に追加する必要があることをGoogleに通知します。これは、すでにajaxを実装しているWebサイトに最適です。必要なのは、!を追加することだけです。

これの欠点は、ajaxをクロール可能にするという問題を解決するだけであるということです。次の問題は解決しません。

  • Ajaxおよび非AjaxユーザーのURLをクリーンで一貫性のある状態に保ちます。例えば。最終的にwww.facebook.com/profile.php?pid=123#!profile.php?pid=123になる可能性があります
  • Ajax以外のユーザーがWebサイトにアクセスできるようにします。
  • Ajaxユーザーと非Ajaxユーザーの両方でURLを同じに保つ。
  • クエリ文字列に関する状態のエスケープと変換には、非常に複雑なサーバー側の変更が必要です。
  • これらの問題を真に解決するように設計された新しいHTML5PopState機能とは互換性がありません。

現在すべてにajaxを使用していないウェブサイトの場合、上記の問題のため、Googleプロポーザルを使用しない方がはるかに優れています。これは、Facebookのようにajaxに夢中になり、SEOの必死の解決策が必要なサイトの回避策にすぎないためです。これらの問題の多くを解決する代替手段があります(そして、HTML5 PopStateが利用可能になると、すべての問題を解決できます)。そのような代替手段の1つがjQueryAjaxybalupton.comに表示)です。これは、Webサイトをajaxアプリケーションにアップグレードするだけで機能し、Ajax対応のリッチでインタラクティブなエクスペリエンスを維持し、Ajaxが無効なユーザーに対しても完全に機能し続けます。

于 2010-09-18T10:26:53.550 に答える
5

考えられるユースケースについては、 GoogleのAJAXアプリケーションのクロール 可能化を参照してください(これがFacebookがこのフラグメントを使用した理由かどうかはわかりません)。

于 2010-09-18T10:30:15.550 に答える