Facebook聊天窗口是如何实现的?

16

Facebook上,您可以浏览网站而不影响浮动聊天窗口。似乎主页面位于iFrame内部,页脚和聊天窗口位于外部。

alt text
(来源: k-director.com)

主要内容是否在iFrame内部,还是页脚和聊天窗口在iFrame内部?

后者似乎不可能,因为在这种情况下,当您单击主页面中的链接时,所有内容都必须重新加载,包括页脚iFrame。

如果刷新页面,则会重新加载聊天窗口,但如果通过单击链接浏览网站,则不会重新加载聊天窗口。

谢谢。


2
+1,问题的图片和良好的描述 - flodin
4个回答

17
如果您安装了FireBug并启用了Facebook的网络监视器,您会发现当您点击应用程序内的大多数链接时,您不会进行完整的页面刷新,而是进行一个AJAX调用,该调用将使用新内容更新页面。
它看起来像一个新页面,但实际上您仍然在同一页上,只是聊天栏以外的几乎所有内容都被替换了。

1

可能只是一个绝对定位的 div,其中包含一个用于内容滚动的 div。Ajax 将提供内容。


0
聊天窗口在加载新页面时确实会刷新,但它们保持了其视图状态(打开/关闭/聊天历史记录)。

如果您刷新页面,则聊天窗口将重新加载,但如果您通过单击链接浏览站点,则不会重新加载。 - Santiago Corredoira

0

这是一个绝对定位的 div,位于您的浏览器窗口底部。这并不难,我在一个周末内从零开始克隆了 Facebook 聊天以用于 ClockingIT。


很容易将div固定在页面底部。我好奇的是,他们是如何让你在不重新加载聊天div的情况下浏览不同的页面的。 - Santiago Corredoira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接