目前我正在使用此SQL来检查用户是否已连接:
date_add(last_activity, INTERVAL 3 MINUTE) > NOW()
这是被动的,只会在加载页面时触发。
我想做的是一个系统,检查用户是否在给定的时间内保持连接并给予奖励积分。
你有什么建议来实现这个目标?使用民意调查或其他方法?
答案 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 所以这个想法是这样的:
实际上,如果你愿意,改变的东西可以是任何东西,但我认为鼠标位置最合适。