计算用户连接到站点的时间

时间:2011-05-18 12:04:13

标签: php mysql time

目前我正在使用此SQL来检查用户是否已连接:

date_add(last_activity, INTERVAL 3 MINUTE) > NOW()

这是被动的,只会在加载页面时触发。

我想做的是一个系统,检查用户是否在给定的时间内保持连接并给予奖励积分。

你有什么建议来实现这个目标?使用民意调查或其他方法?

4 个答案:

答案 0 :(得分:2)

您需要使用某种类型的java脚本,它将使用ajax以1分钟的间隔向您的站点报告活动。您需要实现某种机制来检查用户是否处于活动状态,例如鼠标移动或滚动页面,因为某些用户可以长时间使用同一页面。如果自上一分钟后页面未使用(应该是javascript中的全局变量,每次鼠标移动都设置为true,每次发送消息时设置为false),则不发送消息。
当您在服务器中收到ajax通知时,您检查最后一个ajax通知(应该存储在数据库中)和当前通知之间的时间,如果它小于一个间隔(可能是2分钟),则为用户提供点数。

答案 1 :(得分:1)

如上所述,您可以使用AJAX和Refresh META标记。请注意,如果我看到浏览器标签不断刷新,我会关闭它,因为它会分散注意力。当然,如果您提供的服务需要经常刷新(聊天/吼叫,自动收报机),那么它就不那么令人不安了。

我目前有14个标签打开,其中一些标签我还没看过,所以你要问你的信息有多重要。据我所知,如果javascript没有移动到处理了mousemove事件的东西,javascript就无法获取当前鼠标位置,因此实现“是视图中的页面并且用户移动鼠标”可能会引发很多用户活动时的事件。

答案 2 :(得分:1)

我可能在这里过于简单了,如果你想在网站上花费时间或类似的东西,这可能会有所帮助,但谷歌分析师需要这样做。网站停留时间是他们主动记录的指标。

答案 3 :(得分:1)

确定。所以这是我的想法。正如我在评论中提到的,我的方式是javascript超时和AJAX 所以这个想法是这样的:

  1. 为鼠标位置创建一个全局变量。
  2. 将函数的超时设置为大约10秒的间隔(可以及时增长)。
  3. 功能将最后一个鼠标位置与当前鼠标位置进行比较。如果它已经改变,那么用户可能是活跃的。
  4. 更新鼠标位置的全局变量。并将数据发送到服务器端。
  5. 冲洗并重复......
  6. 实际上,如果你愿意,改变的东西可以是任何东西,但我认为鼠标位置最合适。