2014-01-09 117 views
2

我看到了这个问题,18个月前在这里问过,但没有(正确的)答案:Window like facebook chat持久聊天窗口?像Facebook或OkCupid

Facebook和OkCupid有甚至当你点击到另一个页面在其网站上整理消息时保持开放的窗口。从字面上来看,即时通讯窗口(和Facebook上的朋友列表)并不像闪光灯或“闪烁”,就好像它们正在快速重新加载一样。如果刷新网站(F5或类似网站),则邮件将消失,至少暂时消失。

我能想到的唯一的事情是整个网站从来没有真正改变地址,而只是推送新的URL到你的浏览器,所以它看起来像URL改变,但你永远不会真的离开相同的文件。

他们如何提供这种持久性聊天?

回答

1

我的猜测是,他们使用类似的东西来qjuery-pjax:由通过AJAX从您的服务器抓取HTML和更换容器的内容

pjax作品: https://github.com/defunkt/jquery-pjax

从自己的文件在您的网页上使用ajax'd html。然后,它使用pushState更新浏览器的当前网址,无需重新加载页面的布局或任何资源(js,css),从而显示快速,完整的页面加载。但真的只是ajax和pushState。

这意味着点击页面上的链接将只加载页面的一部分,并保持聊天窗口不变(不闪烁)。如果你点击F5,浏览器正在启动不会使用ajax/pushState的刷新。这会导致聊天窗口闪烁。