Facebook的内容是否动态加载?

时间:2012-06-22 22:38:26

标签: javascript facebook address-bar

在Facebook上点击链接时,顶部标题栏根本不会闪烁。我习惯在通过ajax加载内容的页面上看到这种效果,但在Chrome上,网址正在发生变化,据我所知,这意味着加载了新页面。

在javascript中,我知道如果没有重定向就无法更改网址,但主题标签可以,所以我发现这非常有趣。我认为这可能是chrome所做的事情,它会在你离开前一个网页之前加载一个网页以创建无缝体验,所以我在Internet Explorer上尝试了它。在IE上,会产生相同的效果,但这次url不会改变,只是标签。我也尝试使用FireFox,它以与Chrome相同的方式更改URL。

这里发生了什么?

3 个答案:

答案 0 :(得分:4)

是的,它装有AJAX。并且网址已更改by manipulating the history。一个名为HistoryJS的漂亮库也会使用散列更改为不支持的浏览器包装此功能。

答案 1 :(得分:1)

不确定Facebook是否属于这种情况,但History API允许您以编程方式更改网址 - 只要您遵守same origin policy即可。 GitHub是一个不引人注意地使用这种技术的好例子。

答案 2 :(得分:1)

在现代浏览器中,可以通过history.pushState()功能更新网址而无需重新加载页面。

示例:

history.pushState({}, "", "foo.html");