首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >看似异步的页面加载

看似异步的页面加载
EN

Stack Overflow用户
提问于 2013-05-15 14:54:22
回答 2查看 2.5K关注 0票数 2

我不知道这叫什么,但在google plus中,当你导航到不同的页面时,HTTP地址会改变,但用户栏似乎保持不变,不会重新加载。发生了什么?如何做到这一点?

我希望这是有意义的!谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-15 15:01:13

AJAX (异步加载内容)

正在异步加载内容,并且正在更改地址栏中的url。

异步加载内容的一个基本示例:

代码语言:javascript
运行
复制
$.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

提取答案:

代码语言:javascript
运行
复制
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

票数 3
EN

Stack Overflow用户

发布于 2013-05-15 15:00:08

很可能他们正在使用HTML5 History API,特别是pushState方法来添加新的历史状态。他们还可能使用Ajax (XHR)加载新内容,然后通过DOM API将该内容添加到页面。

请查看pjax,这是一个为您处理大部分内容的库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16558626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档