如何动态更新用户列表

时间:2013-06-20 00:17:35

标签: jquery

我正在尝试创建登录用户的显示列表。所以想象一下,在左侧面板上,我有一个登录人员列表。每当有新人登录时,该列表将立即更新并显示给所有其他人。

我找不到这方面的教程,因为我不知道要搜索的正确短语。请给我一个推荐。

2 个答案:

答案 0 :(得分:1)

这是一个相当广泛的问题,答案将在很大程度上取决于您的环境。你的网站是PHP的后端吗?节点? Rails的?等等。您如何存储登录用户列表?

一旦你弄明白,简短的回答是“使用AJAX”,基本上你会想要定期轮询服务器端脚本,询问用户列表(脚本可能会从文件/数据库中读取)。 jQuery的$.get方法可以做到这一点。当列表更改时,您将重新呈现HTML列表。

如果您对此过程的步骤有更多疑问,请与我们联系。

答案 1 :(得分:1)

当用户登录所有已登录的用户时,必须实时通知。

使用html5,您可以使用websockets。但是,在此之前,有几种不同的技术称为comet

最天真的实现是旧学校轮询,每个客户端使用ajax每隔X秒轮询一次服务器,询问所有登录用户的列表。同时,这可以用作检测用户仍处于活动状态的心跳,因为某些用户可能没有使用注销链接注销并只是关闭了选项卡。

一步调用称为长轮询,而不是每X秒轮询一次,发送一个ajax请求,服务器只在某个事件发生后响应('有人登录')。一旦客户端收到响应,它会立即发送另一个ajax请求以重新建立连接。

值得了解潜在的细节,但没有必要重新发明轮子。我使用名为pusher的服务。它还有一个webhooks,一旦终止连接就会提醒你,这对于确定用户何时关闭标签而不注销是很有用的。

这些第三方服务如何运作?

他们要求您在html页面中添加一个js片段,该页面将与其服务器建立连接。如果浏览器支持,则使用Web套接字,否则可以使用几种后退方法中的一种,例如旧版浏览器的彗星或闪存。

当您希望发送信息时,您只需向服务发出一个发布请求,然后通过已打开的连接向目标客户发出警告。