我在网上找遍了,没找到解决办法。我没有使用 AJAX 的经验,但我知道执行此功能需要它,因为我相信它比仅使用纯 javascript 更好。
我有一个在我的网站上注册的成员(member)列表,列表在单独的页面上 --> 在每个成员(member)的列表上,有一个绿点(表示成员(member)是否在线)和用户是否离线(灰点显示)。我目前仅使用 css 和 html 将其作为占位符。 <online />
和 <offline />
在 <h2>
内标签几乎像 <span>
标签。有没有一种方法可以在不使用 NodeJS 和/或 SocketIO 的情况下自动更新它以实时显示谁实际登录/注销?
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/
最佳答案
虽然我不喜欢 JS,但它的基础是简单地用某人登录或执行操作的最新时间更新数据库中的表 - 然后当您显示有关用户的信息时,您只需查询该表 - 任何在过去五到十分钟内进行过某种事件的人都被视为“在线” - 而其他人......当然不是。
您的脚本不能真正使用 session ID - 因为它们是唯一的并且仅对运行代码的用户可见。我的意思是,尽管您的网站上可能有十几个用户,他们都在使用 session 变量,但他们无法相互交互。每个用户(我指的是运行的代码)只能访问他们自己的 session 变量。如果您希望它们能够看到彼此,则必须通过中间设备(例如数据库或文件)或持续运行的实际应用程序(用 Java 或 C# 等编写)来完成,这是始终运行并从 PHP 代码传递数据。
所以基本上,虽然您可以应用 AJAX 来不断检查更新,但后台的数据几乎总是通过一个简单的表格完成的,您可以在页面重新加载时实现该表格,也可以更高级地在通过在页面内运行的脚本定期进行。
关于javascript - 允许访客和站点成员使用 ajax、php/pdo、css、html 查看谁在线/登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18838030/