我只是对Facebook很好奇。这是我的问题。
感谢您的回答。
答案 0 :(得分:0)
我不确定Facebook究竟是如何实现这一点的,但我的猜测是使用某种pushState和AJAX来仅更新网站的部分内容(HTML)。
PushState 用于browisng历史记录,并使网页的工作和行为与完整页面重新加载完全一样。它改变了浏览器地址栏中的地址,使用户能够像普通页面加载一样使用浏览器中的后退和前进按钮。用户将无法区分。
AJAX 用于在后台获取新内容,然后在不重新加载页面的情况下更新DOM / HTML,就像普通的AJAX调用一样。您可以使用在不加载页眉和页脚的情况下使用导航时更新的页面特定内容的div。
示例:强>
点击导航链接只会在后台通过AJAX调用重新加载#content div中的内容。
<html>
<head></head>
<body>
<header>
<nav>
<a href="/page1">Page 1</a>
<a href="/page2">Page 2</a>
</nav>
</header>
<div id="content">
page content
</div>
<footer>
footer content
</footer>
</body>
<html>
例如,可以使用jQuery插件 PJAX 轻松完成此操作。有关实施和下载的更多详细信息,请参阅GitHub page
注意:这在IE 9中不起作用(但它应该可以在IE 10中运行,但我没有尝试过,也没有自己确认过),但是大多数工具,包括PJAX,都很容易降级,所以不受支持的浏览器会重新加载整页。