Facebookを含むWeb URLで、文字列/#!が表示されます。現れる。それの目的は何ですか?


7

文字列#は何ですか?私がアクセスしたときにFacebookがそれをURLに貼り付けるとどうなりますか?ページ内のアンカー位置を示す#記号の役割を知っています。しかし、#とは何ですか。ために?

回答:


8

これにより、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が表示されます。


うん、今それが答えです。どうもありがとう。ええ、動的にシフトするページにどのようにインデックスを付けますか?クールな情報。ありがとう
estephan500

1

この記事では、わかりやすく説明します。

一方、ブラウザでhttp://twitter.com/#!/timbrayを指定すると、次のようになります。

ブラウザはそのアドレスを引き離し、「#」の後の部分、つまり!/ timbrayをローカルに保存します。この部分は技術的には「フラグメント識別子」と呼ばれていますが、「ハッシュバング」としましょう。

これはtwitter.comに接続し、アドレスがすべてハッシュバンであるため、多かれ少なかれ空のクエリを送信します。

その情報がハッシュバングにあったため、サーバーは誰のツイートストリームが要求されているのかを知りません。しかし、それが送信するものには、JavaScriptの(おそらく大きくて複雑な)チャンクへのリンクが含まれています。

ブラウザはJavaScriptをフェッチし、そのコードを実行します。

JavaScriptはブラウザーのメモリからハッシュバング(!/ timbray、覚えていますか?)を釣り出し、その値に基づいて、サーバーからより多くのビットや断片を引き出し、ツイートストリームのようなものを構築します。


1
Webアプリケーションへようこそ!これは理論的には質問に答える可能性がありますが、答えの本質的な部分をここに含め、参照用のリンクを提供することが望ましいでしょう。回答の良い例については、@ Sathyaの編集を見てください。おかげで
コーディングバッジ

1

ウェブでは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は推奨されません。しかし、これが何を意味するのかを完全に明確にすることが重要なので、読み続けてください。

そして合計:

  1. 「ハッシュ」URLと「ハッシュバング」URLは同じものではありませんが、「ハッシュバング」は残念ながら「JavaScriptベースのロジックをトリガーするハッシュURL」の総称になっています。
  2. ハッシュURLがサーバーに送信されることはないため、アプリケーションロジックをトリガーするためにそれらに依存している場合、JavaScriptなしではURLは役に立ちません。
  3. ハッシュURLにはJSが必要であるため、URLスキームを変更する場合は、既存のすべてのURLを破壊するか、JS URLハンドラーを永久に維持することになります。
  4. 「ハッシュバング」URLは、ページを検索エンジンで自動的にインデックス付け可能にしません。それを実現するには、サーバー側で多くの作業を行う必要があります。
  5. 完全なGoogle Ajaxクロールスキームを正しくサポートしていても、それはGoogleでのみ役立ちます。あなたはまだ他の検索エンジンに夢中になっています。

stackoverflowでもこの質問を確認してください。


1
「ここ、ここ、そしてここ」は、私たちに有用なものの多くを語りません。回答を編集して、少なくともそれらのそれぞれが話していることの要約と、それがどのように関連しているかを含めてください。
nhinkle


-2

これは、ページの上部のアンカーポイントです。一部のWebページには、ページの上部にジャンプする「上部」リンクがあります。リンクは「#」を指します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.