2011-12-10 13 views
2

私はパーマリンクシステムを設計していますが、TwitterとHipmunkの両方のパーマリンクに接頭辞#!が付加されていることに気付きました。私はこれがなぜであるのかと疑問に思っていましたが、特に感嘆符が理由のためにそこにあれば。​​は、正規表現のURLパーサーを使用して特定のテンプレートにクエリをリダイレクトできるフレームワークを使用していることは間違いないため、うまく動作しませんか?#!パーマリンクの#とは対照的に

http://www.hipmunk.com/#!BOS.SEA,Dec15.Jan02

http://twitter.com/#!/dozba

私の唯一の推測では、ブラウザがアンカー要素にリンクする#を使用しているため、それはですです。感嘆符が付いているのはなぜですか?

答えて

2

これはインデックスのために[Googleによる]「AJAX」ページクロールを作るために行われている - それはは全くfragment identifierの他の明確なセマンティクスには影響しません!

は、次のようにMaking AJAX Applications Crawlable: Getting Started

簡単に言うが、解決策が機能を参照してください:クローラはかなりAJAX URLを検索します(つまり、#を含むURLハッシュフラグメント!)。次に、このURLのコンテンツをサーバーから少し変更した形式で要求します。 Webサーバーは、HTMLスナップショットの形式でコンテンツを返します。このコンテンツは、クローラによって処理されます。検索結果に元のURLが表示されます。

他の検索エンジンもこのリード/プロトコルに従っていると確信しています。

ハッピーコーディング。


また、それはHTML5あたり少なくとも、ポスト内 推論が無効であるように、「!fooの」のIDを持つ要素を持つように、実際には完全に有効です。記事"The id attribute just got more classy"を参照してください:

HTML5はid属性の追加の制限を取り除きます。ドキュメント内で一意であることを除けば、値に少なくとも1つの文字(空ではない)が含まれていなければならず、空白文字を含むことはできません。

+1

mmm良い読書をしてください。ありがとう。 –

2

私の推測では、どちらのページもJavaScriptで#(アンカーへのリンク)とAjaxを使用していくつかの追加コンテンツを読み込むカスタム#!の違いがあります。

#記号の後には他のすべてがうまくいくはずです。

関連する問題