1

我已经搜索了整个网络,但找不到解决方案。我在 AJAX 方面没有经验,但知道执行此功能需要它,因为我相信它比仅使用纯 javascript 更好。

我有一个在我的网站上注册的成员列表,列表在一个单独的页面上 --> 在每个成员的列表上,有一个绿点(表示成员是否在线),如果用户离线(灰点显示)。目前我只使用 css 和 html 作为占位符。和在标签<online />内几乎就像一个标签。有没有办法在不使用 NodeJS 和/或 SocketIO 的情况下自动更新它以实时显示谁实际登录/注销?<offline /><h2><span>

html 看起来像这样:

<h2>Billy <online title="Online" /></h2> 

如果<online title="Online" />在线(登录),他们将在他们的名字旁边显示绿点。如果他们未登录,则 html 应如下所示:

<h2>Billy <offline title="Offline" /></h2>

如果<offline title="Offline" />离线(注销),他们将在他们的名字旁边显示灰点。

就像我还提到的那样,我在 AJAX 方面没有经验,但我很确定我需要仅针对本节执行自动更新/刷新时间 - 所以不是针对整个页面......而且我有点熟悉 PHP,所以我会使用查询SESSION_[ID]来查看/收集有关谁已登录和谁未登录的信息。

如果有人可以提供帮助,我将不胜感激,我一直在寻找如何实现这一目标,但找不到任何东西......

我目前拥有的演示:http: //jsfiddle.net/tZpk6/

4

1 回答 1

0

虽然我并不喜欢 JS,但其基础是简单地使用某人登录或执行操作的最新时间更新数据库中的表 - 然后当您显示有关用户的信息时,您只需查询该表- 任何在最后五分钟或十分钟内进行过某种活动的人都被认为是“在线” - 而其他人......好吧不是。

您的脚本不能真正使用会话 ID - 因为它们是唯一的,并且仅对运行代码的用户可见。我的意思是,尽管您的站点上可能有十几个用户,他们都使用会话变量,但他们无法相互交互。每个用户(我指的是正在运行的代码)只能访问他们自己的会话变量。如果您希望它们能够相互看到,则必须通过诸如数据库或文件之类的中间设备 - 或持续运行的实际应用程序 - 用 Ja​​va 或 C# 等编写,这是始终运行并从 PHP 代码传递数据。

所以基本上,虽然你可以应用 AJAX 来不断检查更新,但后台的数据几乎总是通过一个简单的表来完成,你可以在页面重新加载时实现或变得更花哨并通过定期检查它在您的页面内运行的脚本。

于 2013-09-16T22:27:22.717 回答