これを何と呼ぶべきかわかりませんが、Google プラスでは、別のページに移動すると HTTP アドレスが変更されますが、ユーザーバーは静的なままでリロードされないようです。何が起きていて、これはどのように行われていますか?
これが理にかなっていることを願っています!ありがとうございました!
これを何と呼ぶべきかわかりませんが、Google プラスでは、別のページに移動すると HTTP アドレスが変更されますが、ユーザーバーは静的なままでリロードされないようです。何が起きていて、これはどのように行われていますか?
これが理にかなっていることを願っています!ありがとうございました!
コンテンツが非同期で読み込まれ、アドレス バーの URL が変更されています。
コンテンツを非同期的にロードする基本的な例:
$.ajax({
url: 'http://www.example.net/load.html',
dataType: 'html',
success: function(data){
// This will replace all content in the body tag with what has been retrieved
$('body').html(data);
}
});
ドキュメントについては、こちらを参照してください。$.ajax()
リダイレクトを使用して URL を変更するには、HTML5 history API を使用する必要があります。同様の質問が以前にここで尋ねられました。参照してください。
抽出された回答:
function processAjaxData(response, urlPath){
document.getElementById("content").innerHTML = response.html;
document.title = response.pageTitle;
window.history.pushState({"html":response.html,"pageTitle":response.pageTitle},"", urlPath);
}
HTML5 History API の詳細については、こちらをご覧ください。
HTML5 History API、具体的にはpushState
新しい履歴状態を追加する方法を使用している可能性があります。また、おそらく Ajax ( XHR ) を使用して新しいコンテンツを読み込み、そのコンテンツをDOM API経由でページに追加しています。
このほとんどを処理してくれるライブラリpjaxを調べてください。