我不知道这叫什么,但在google plus中,当你导航到不同的页面时,HTTP地址会改变,但用户栏似乎保持不变,不会重新加载。发生了什么?如何做到这一点?
我希望这是有意义的!谢谢!
发布于 2013-05-15 15:01:13
AJAX (异步加载内容)
正在异步加载内容,并且正在更改地址栏中的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()
文档,请参阅here。
修改URL而不重定向
要在重定向的情况下更改url,您需要使用HTML5历史API。类似的问题以前也在这里被问过,请参阅:
Modify the URL without reloading the page
提取答案:
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历史接口的更多信息,请参阅here。
发布于 2013-05-15 15:00:08
很可能他们正在使用HTML5 History API,特别是pushState
方法来添加新的历史状态。他们还可能使用Ajax (XHR)加载新内容,然后通过DOM API将该内容添加到页面。
请查看pjax,这是一个为您处理大部分内容的库。
https://stackoverflow.com/questions/16558626
复制相似问题