1

現在の HTTP 仕様では、URL フラグメント (URL の を含む部分とそれに続く部分#) はサーバーに送信されません。ただし、フラグメントを使用して何らかの状態を維持する AJAX の普及に伴い、サーバーが要求時に URL フラグメントを認識できると便利な状況が数多くあります。

たとえば、http://facebook.comにアクセスしてストリーム内のユーザー名をクリックすると、URL はhttp://faceboook.com/#!/usernameになり、FB がリロードせずにページを更新できるようになります。そのブートストラップ JS と HTML のすべて。ただし、ブラウザでこれをリロードすると、サーバーは URL の「#/!username」の部分を確認できず、コンテンツを事前にレンダリングできません。これにより、クライアントの Javascript がフラグメントをロードして解析した後、ブラウザーは追加のリクエストを行う必要があります。

これを達成するための標準的なメカニズムを作成するための努力や提案があったかどうか疑問に思っています。

たとえば、URL フラグメントの値とともに送信される標準の HTTP ヘッダーが存在する可能性があります。そのようなことを気にするサーバーは、それにアクセスできます。

これは、Web アプリケーション コミュニティ全体にとって非常に便利なことのように思われるため、何も提案されていないことに驚いています。見逃したのかもしれないけど。

4

3 に答える 3

0

Ajax ページをクロール可能にするためのGoogle によるこの提案を見つけましたが、より制約された一連のユース ケースに対応しています。具体的には、URL フラグメントを URL パラメーターに置き換える方法を作成して、フラグメントを使用して同等の URL にアクセスするクライアントによって生成されるのと同じ HTML 出力をサーバーから取得します。ただし、そのような URL は、毎回ページをリロードする必要があるため、Ajax アプリを実際に実行するのには役に立ちません。

于 2011-04-21T01:53:47.607 に答える
0

私見、フラグメント識別子は実際には状態を保存するのに適した場所ではありません。それは他の何かのために設計されています。

そうは言っても、http://www.jenitennison.com/blog/node/154には、主題全体についての良い議論があります。

于 2011-05-28T13:23:51.293 に答える