Facebook的内容是否动态加载

Is facebook's content dynamically loaded?

本文关键字:动态 加载 是否 Facebook      更新时间:2023-09-26

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

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

这是怎么回事?

是的,它加载了 AJAX。并且通过操纵历史记录来更改URL。一个名为 HistoryJS 的漂亮库也使用哈希更改为不支持的浏览器包装了此功能。

不确定Facebook上是否如此,但历史记录API允许您以编程方式更改URL - 只要您遵守同源政策。GitHub 是使用这种技术的一个很好的例子。

在现代浏览器中,可以通过 history.pushState() 函数在不重新加载页面的情况下更新 URL。

例:

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