回答:
これにより、Googleや友達がページをクロールできるようになります。
http://code.google.com/web/ajaxcrawling/docs/getting-started.html
http://googlewebmastercentral.blogspot.com/2009/10/proposal-for-making-ajax-crawlable.html
ソリューションは次のように機能します。クローラーはかなりのAJAX URL(つまり、#!ハッシュフラグメントを含むURL)を見つけます。次に、このURLのコンテンツをサーバーに少し変更した形式で要求します。
Webサーバーは、コンテンツをHTMLスナップショットの形式で返し、クローラーによって処理されます。検索結果には元のURLが表示されます。
この記事では、わかりやすく説明します。
一方、ブラウザでhttp://twitter.com/#!/timbrayを指定すると、次のようになります。
ブラウザはそのアドレスを引き離し、「#」の後の部分、つまり!/ timbrayをローカルに保存します。この部分は技術的には「フラグメント識別子」と呼ばれていますが、「ハッシュバング」としましょう。
これはtwitter.comに接続し、アドレスがすべてハッシュバンであるため、多かれ少なかれ空のクエリを送信します。
その情報がハッシュバングにあったため、サーバーは誰のツイートストリームが要求されているのかを知りません。しかし、それが送信するものには、JavaScriptの(おそらく大きくて複雑な)チャンクへのリンクが含まれています。
ブラウザはJavaScriptをフェッチし、そのコードを実行します。
JavaScriptはブラウザーのメモリからハッシュバング(!/ timbray、覚えていますか?)を釣り出し、その値に基づいて、サーバーからより多くのビットや断片を引き出し、ツイートストリームのようなものを構築します。
ウェブではhashbangと呼ばれています。Unix環境では、シバンと呼ばれます。
この記事では、ケーススタディとしてLifehackerの再設計を使用して、URLでのハッシュバングの使用から生じる影響について詳しく説明します。
それで、人工的なURLであり、実際にコンテンツを返す適切なURLを指す前に再フォーマットする必要があるURLである場合、なぜハッシュバンを使用するのでしょうか。
理由のなかで一番強いのは「かっこいいから」です。私が言った最強のない強いです。
Danny Thorpeは、彼のブログのこの記事で、その副作用について説明しています。
URLフラグメントを使用するもう1つの副作用は、フラグメントがブラウザーの履歴に表示されないことです。URL等価ルールがURLフラグメントを無視した結果、フラグメントのみが異なる複数のURLは、ブラウザー履歴の1つのエントリとしてのみ表示されます。同じベースページの特定のサブセクションを参照するために、本来のURLフラグメントを使用している場合、これは理にかなっています。
私はLifeHackerに対するDaviesのすべての発言に同意するかどうかはわかりませんが、JavaScriptとは無関係に目に見える静的なHTMLコンテンツを含まないハッシュバンURLパターンのみでコンテンツシステム全体を構築することは、おそらくJavaScriptの最適な使用法ではないことに同意しますハッシュバングURLパターン。
Yahoo!のYUIエンジニアであるRyan Groveは、これを使用することを推奨せず、Quoraでこの質問に答える理由を説明しています。
いいえ、ハッシュバングURLは推奨されません。しかし、これが何を意味するのかを完全に明確にすることが重要なので、読み続けてください。
そして合計:
- 「ハッシュ」URLと「ハッシュバング」URLは同じものではありませんが、「ハッシュバング」は残念ながら「JavaScriptベースのロジックをトリガーするハッシュURL」の総称になっています。
- ハッシュURLがサーバーに送信されることはないため、アプリケーションロジックをトリガーするためにそれらに依存している場合、JavaScriptなしではURLは役に立ちません。
- ハッシュURLにはJSが必要であるため、URLスキームを変更する場合は、既存のすべてのURLを破壊するか、JS URLハンドラーを永久に維持することになります。
- 「ハッシュバング」URLは、ページを検索エンジンで自動的にインデックス付け可能にしません。それを実現するには、サーバー側で多くの作業を行う必要があります。
- 完全なGoogle Ajaxクロールスキームを正しくサポートしていても、それはGoogleでのみ役立ちます。あなたはまだ他の検索エンジンに夢中になっています。
stackoverflowでもこの質問を確認してください。
これにより、ページのインデックスを作成する方法がGoogleに通知されます。