facebook如何检测注销?

时间:2012-10-02 08:12:51

标签: php facebook

正如您所看到的,虽然我们在Facebook中有5个打开的标签,但是当我们在其中一个标签中“退出”然后我们转到另一个标签页时,它会检测到我们已退出并通知我们并重定向用户到登录页面。这是怎么回事?我想用PHP / jQuery为我的Web应用程序做这样的事情。我只需要一个提示......

提前致谢

4 个答案:

答案 0 :(得分:3)

以与任何其他应用程序相同的方式:当您注销时,服务器会从客户端删除cookie或更改其值以指示"已注销"状态。当稍后发出新请求时,服务器会在cookie中检测到此状态,并为已注销的用户返回适当的内容。

Facebook使用AJAX做到这一点,但这并没有改变画面。如果您使用浏览器的开发人员工具来监视Facebook的AJAX请求,您将能够看到所有血腥的细节。

答案 1 :(得分:3)

Facebook在其网页上使用Comet技术。每个页面都包含一个打开的HTTP请求。一旦发生变化(例如“传入聊天消息”或在您的情况下“用户注销”),此信息将被推送到客户端。

如果您使用NGINX作为网络服务器,我建议您查看nginx_http_push_module

答案 2 :(得分:1)

它绝对使用Ajax请求,它们以异步方式联系Web服务器(不刷新页面)。

使用JQuery Library进行Ajax请求非常简单:Link to API

答案 3 :(得分:0)

最简单的方法之一是使用一个Session变量来控制用户是否登录。当您点击注销时,它会将该变量设置为false。

Facebook将有一个脚本定期调用某种服务器端脚本的ajax调用来检查会话是否仍然有效。一旦无效,ajax调用将导致弹出窗口出现。