计算在线访客人数?

时间:2010-06-06 14:44:19

标签: php mysql ajax

我需要显示在线访问者的数量,但选择算法来执行此操作存在问题! 也许我必须在DB创建一个表格,在那里我将存储访问者的IP地址和访问时间!所以我可以显示IP地址的数量,这个时间> = NOW() - 例如10分钟......(“now() - 10分钟”只是为了显示逻辑,我知道这不是功能:)

这是goog的方式吗?

请给我一个主意。

由于

5 个答案:

答案 0 :(得分:3)

This is good tutorial.请注意,mysql(我相信你会使用它)在线用户表应该输入为MEMORY。

答案 1 :(得分:1)

我不确定如何使用AJAX来存储数据......

我个人使用数据库解决方案。

我在网站中存储了user_idlast_seenIP和位置(但这并不一定只是为了计算)。

当用户请求页面刷新last_seen列并删除NOW()-last_seen大于x分钟的所有条目时。

答案 2 :(得分:0)

跟踪“访问者”(与Web服务器应自行跟踪的原始页面请求相对)是一项复杂的艺术。

您可以存储IP地址,如您所述,但是使用代理的访问者会像每次加载页面那样频繁地轮换IP?那些使用相同代理的一组访问者如何使用相同的IP呢?

我的建议:不要自己做任何事情,并使用Google的免费Analytics服务。它可以跟踪访问者,浏览器,流量来源以及您可能想知道的关于谁在查看您网站的任何其他信息。

答案 3 :(得分:0)

是的,算法是o.k.一般情况下,但有一些更正

您可能希望先删除所有过时的记录,然后再计算其余记录 10分钟太多了。 1-3是用户在页面上花费的平均时间 AJAX项目很有趣,但它与存储无关。您需要更多关于客户端 - 服务器应用程序的教育。 AJAX是传输,而不是存储。

答案 4 :(得分:-1)

如果您希望该网站会有很多访问者,那么查询可能会让每10分钟一个用户的页面变得非常慢......

如果是这样,我建议编写一个CLI脚本来清理旧条目并在cronjob中运行它。这样用户就不会注意到任何延迟,因为分析时间将花在CLI上。