php - 如何在没有数据库的情况下显示当前在线用户?或者至少非常有效。最好用 PHP

标签 php jquery performance

这个问题对我来说一直是个脑筋急转弯。抱歉,如果我写了很多,我只是想弄清楚我已经尝试过什么等。

我将尽可能简单地解释我的问题的想法,因为复杂性非常无关紧要。 网站上任何时候可能有多达 80-90 名用户。他们可能都访问同一个页面,我将其称为 result.php。然而,他们将通过 ID 的 get 变量(result.php?ID=456)访问不同的结果。任何时候,单个记录上的用户数可能少于 3 或 4 个,而记录数则多达 10000 条。

我需要在不到 20-25 秒的误差范围内(这非常重要)知道谁在该页面上的特定 ID 上,并相应地更新页面。一旦他们不再出现在页面上,就会尽快删除他们的名字。

目前,我正在使用一个 jQuery 脚本,该脚本调用一个 php 文件,从正在访问该特定 ID 的“当前访问”用户名的数据库中读取数据,并且仅当他们访问该 ID 的日期在最近的日期内时25秒。该文件还将删除所有早于 5 分钟的条目,以保持表格整洁。

对于 20 或 30 个用户来说这还可以,但现在负载增加了一倍多,我注意到这是一种特别慢的方法。

我还可以使用哪些其他方法?有没有人有过类似情况的经验?

我们目前使用的所有内容都是用 PHP 和一点 jQuery 编写的。如果这很重要的话,我们正在由托管公司异地管理的服务器上运行。

我遇到过一种叫做 Comet 或 Comet Server 的东西,听起来可能会有所帮助,但对于我的目的来说,它听起来也非常复杂,远远超出了我目前的理解范围。

最佳答案

查看websockets用于实时套接字连接。您可以使用 websockets 实时推送更新(而不是轮询),以确保“当前在线用户”的更改在几毫秒内发送。

关于php - 如何在没有数据库的情况下显示当前在线用户?或者至少非常有效。最好用 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10906511/

相关文章:

PHP MYSQL 在数据库 0.01 中保存 float ?

php - 为什么登录时mysql查询不匹配?

JavaScript 字符串根据值拆分

Javascript/JQuery 翻转纸牌游戏

JavaScript 滚动当前 View 的元素 id

java - 在 Java 中检测偶数的最有效方法是什么?

php - 向程序员寻求帮助

php - 使用 PHP 数据库类作为单例有哪些缺点?

javascript - 移动 DOM 节点和浏览器重绘性能

r - 2个逻辑向量的元素之间的快速最小距离(间隔)(取2)