[英]Seemingly Asynchronous Page Load
我不知道該怎么稱呼它,但是在google plus中,當您導航到其他頁面時,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()
文檔的信息,請參見此處 。
要通過重定向更改網址,您需要使用HTML5歷史記錄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歷史記錄API的更多信息,請參見此處 。
他們可能正在使用HTML5歷史記錄API ,特別是pushState
方法來添加新的歷史記錄狀態。 他們還可能使用Ajax( XHR )加載新內容,然后通過DOM API將其添加到頁面中。
查看pjax ,這是一個為您處理大部分工作的庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.