部分的なページの読み込みを可能にし、javascriptの有無にかかわらず同じURLを持つhistory.pushStateURLを探していると思います。
たとえば、ベースURLがhttp://site.com/
With history.pushStateであるとすると、javascriptを使用してページをに変更javascript.htm
し、URLをに変更できhttp://site.com/javascript.htm
ます。
#!
サーバー側では#fragmentにアクセスできないため、URLはjavascriptでのみ機能します。ハッシュバンを使用すると、URLは次のようになります。は不要であることにhttp://site.com/#javascript.htm
注意してください。!
ハッシュの後に何でも設定できるので、urlを設定することもできますhttp://site.com/#!/javascript.htm
。
残念ながら、IEはhistory.pushStateをサポートしていないため#!
、フォールバックとしてURLが必要です。
どちらの方法でも戻るボタンが壊れることはありませんが、URLは方法ごとに異なる方法で設定する必要があります。
シバンは次のように機能します。
function change(){
//page update logic
}
//hashchange event binding
(typeof window.addeventListener === "function")
? window.addEventListener("hashchange", change, false)
: window.attachEvent("onhashchange", change);
//This is how the hash is set
location.hash = "hashstring";
//Accessing it returns the hashstring, with a #
location.hash; //returns #hashstring
ページの「状態」をオブジェクトに格納するため、History.pushStateはもう少し複雑です。
この方法に関するいくつかの良い参考資料を次に示します。
どちらの方法でも、JavaScriptページの操作が必要です。これらの種類のURLの例があります。http://timshomepage.net/comic/には、さまざまなWebコミックへのリンクがあり、それらをページのiframeに埋め込みます。javascriptを無効にすると、リンクはhttp://timshomepage.net/comic/dilbertのようになります。history.pushStateを使用すると、同じURLを使用できます。ハッシュバンフォールバックを使用すると、次のようなURLを取得します: http://timshomepage.net/comic/#!/ dilbert