Facebook页脚栏是一个iframe,为什么它不会重新加载页面的其余部分?

时间:2009-10-13 19:34:52

标签: javascript ajax facebook iframe

我想知道Facebook是如何进行iframe页脚栏的。我的意思是,我知道他们在页脚上有一个iframe,但我想知道他们是如何在不重新加载iframe的情况下重新加载页面,因为即使页面再次重新加载,iframe总是会坚持下去。任何想法/知识?

编辑:

尝试点击不同部分的链接并更改网址,到目前为止我知道,如果您尝试更改网址,则该网页会重新加载。此外,尝试在Chrome上使用Facebook:您会在每个新页面上看到它重新加载。这不是AJAX,因为如果它是AJAX,URL就不会改变(对URL改变很少研究,你知道)。

1 个答案:

答案 0 :(得分:3)

嗯,powtac pretty much gave you the answer:当您点击链接时,Facebook不会重新加载整个页面,它会通过XMLHttpRequest请求新内容,并仅刷新页面中更改的那些部分。

这很简单:一个天真的实现可能根本不使用真正的链接,因此阻止你在单独的浏览器选项卡中打开另一个Facebook选项卡。

此技术 - 拦截链接导航 - 还允许Facebook使用custom prompts when you try to navigate away without saving,并将路径重新编写为片段,允许它在不重新加载页面的情况下跟踪URL中的当前位置。

FWIW,这个问题已经被问及并回答了 - 请参阅:How are the facebook chat windows implemented?