Facebook 页脚栏是一个 iframe,那么为啥它不与页面的其余部分一起重新加载呢?

Posted

技术标签:

【中文标题】Facebook 页脚栏是一个 iframe,那么为啥它不与页面的其余部分一起重新加载呢?【英文标题】:The Facebook footer bar is an iframe, so why it doesn't it reload with the rest of the page?Facebook 页脚栏是一个 iframe,那么为什么它不与页面的其余部分一起重新加载呢? 【发布时间】:2010-12-06 10:55:54 【问题描述】:

我想知道 Facebook 如何处理他们的 iframe 页脚栏。我的意思是,我知道他们在页脚上有一个 iframe,但我想知道他们是如何在不重新加载 iframe 的情况下重新加载页面的,因为即使页面再次重新加载,iframe 也总是粘在那里。有什么想法/知识吗?

已编辑:

尝试单击不同部分的链接,它会更改 URL,到目前为止,我知道,如果您尝试更改 URL,则页面将再次重新加载。此外,尝试在 Chrome 上使用 Facebook:您会看到它在每个新页面上重新加载。这不是 AJAX,因为如果是 AJAX,URL 不会改变(对 URL 改变做一些研究,你会知道的)。

【问题讨论】:

重复:***.com/questions/554243/… 链接确实发生了变化,但只是在一个“#”之后,它不会导致重新加载!它仍然是 AJAX。 【参考方案1】:

好吧,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?

【讨论】:

阅读***文章的第一章...我不想复制粘贴它。 尝试点击不同部分的链接,它会更改 url,到目前为止我知道,如果您尝试更改 url,则页面将再次重新加载。还可以尝试在 chrome 上使用 facebook,您会看到它在每个新页面上重新加载。它不是 ajax,因为 url 不会改变,如果它是 ajax(对 url 改变做一点研究,你会知道的) @basit:查看我的编辑。它只会更改 URL fragment,不会强制页面重新加载。 @shog9:尝试将 url somedomain.com/subpages 页面更改为 somedoain.com/subpages/page2 - 你会看到它会重新加载并且我尝试了 facebook,它会更改 url 而不是它的片段 (#something) 给我一个真实的例子:你可以点击什么 URL 在 Facebook,让你保持 在 Facebook,而不仅仅是改变 URL片段...

以上是关于Facebook 页脚栏是一个 iframe,那么为啥它不与页面的其余部分一起重新加载呢?的主要内容,如果未能解决你的问题,请参考以下文章

php 删除WooCommerce Storefront主题手持式页脚栏链接

jQuery Mobile的学习 jQuery Mobile工具栏标题栏页脚栏的定位学习

更改 AutoLayout 约束的连接点?

Jquery移动页脚上方的白色间隙

如何为我的 Android 应用程序创建页眉或页脚按钮栏

Cordova - 使用固定的页眉和页脚滚动 (ios)