ページの読み込みに Ajax リクエストを使用するいくつかの Web ベースのアプリケーションで#!
、#
. 例:/boo.php#!Projects
の代わりに/boo.php#Projects
.
知りたいのですが、そのようにする技術的な理由はありますか?
ページの読み込みに Ajax リクエストを使用するいくつかの Web ベースのアプリケーションで#!
、#
. 例:/boo.php#!Projects
の代わりに/boo.php#Projects
.
知りたいのですが、そのようにする技術的な理由はありますか?
これは、hashbang/shebang ( #!
) が AJAX ページをインデックス化するための Google のスキームであるためです。
サイトがスキームを採用すると、「AJAX クロール可能」と見なされます。これは、サイトが HTML スナップショットを提供している場合、クローラーがアプリのコンテンツを見ることを意味します。
詳細については、Google Developersをご覧ください。
これを「ハッシュバン」と呼びます。これは、Ajax ベースの Web サイトをインデックス化するために Google によって使用されます。詳細情報 - http://www.fakingfantastic.com/2011/02/09/using-hash-bangs-in-your-urls/
その意図は、例えば Google が AJAX ページをクロールできるようにすることです。
通常、URL のハッシュの背後にあるものはすべてクローラーにとって無関係であり、サーバーにはまったく送信されません。AJAX アプリケーションでは、ブラウザのアドレス バーで実際の URL を「シミュレート」するために頻繁に使用されていました (現在は一般的に を使用していますhistory.pushState
)。
完全な JavaScript アプリケーションを実行できないという制限を回避するために、Google は基本的に次のようなハッシュバンを含む URL に遭遇した場合に、
http://example.com/foo#!key=value
それはそれをに変換することができます
http://example.com/foo?_escaped_fragment_=key=value
そしてそれをサーバーに送信します。次に、サーバーは、JavaScript アプリで表示されるページの表現を返すことが期待されます。結局のところ、これらのアプリをクロール可能にするのは慣例にすぎません。
詳細については、Google によるトピックに関するドキュメントを参照してください。