持久聊天窗口?像Facebook或OkCupid

时间:2014-01-09 06:03:26

标签: ajax facebook html5

我在18个月前看过这个问题,但没有(正确的)答案:Window like facebook chat

Facebook和OkCupid都有消息窗口,即使您点击其网站上的其他页面也会保持打开状态。从字面上看,IM窗口(和朋友列表,在Facebook上)并不像闪存或“眨眼”那样好像他们正在快速重装。如果您刷新网站(F5等),则消息将消失,至少暂时消失。

我唯一能想到的是整个网站从未实际更改地址,只是将新网址推送到浏览器,因此看起来网址已更改,但您从未真正留下相同的文件。

他们如何提供持续聊天?

1 个答案:

答案 0 :(得分:1)

我猜他们正在使用与qjuery-pjax类似的东西: https://github.com/defunkt/jquery-pjax

来自他们的文档:

  

pjax的工作方式是通过ajax从服务器获取html,并用ajax'd html替换页面上容器的内容。然后,它使用pushState更新浏览器的当前URL,而无需重新加载页面的布局或任何资源(js,css),从而提供快速,完整页面加载的外观。但实际上它只是ajax和pushState。

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