更新:この回答は、この記事によって置き換えられました。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つがjQueryAjaxy(balupton.comに表示)です。これは、Webサイトをajaxアプリケーションにアップグレードするだけで機能し、Ajax対応のリッチでインタラクティブなエクスペリエンスを維持し、Ajaxが無効なユーザーに対しても完全に機能し続けます。