我正在尝试计算特定页面上的当前查看者.我需要将此计数存储在DB中.主要问题是用户离开页面后清理.
用户是匿名的.每个活动用户每5秒发送一次AJAX请求.
这样做的最佳算法是什么?有什么建议?
UPD:我正在尝试减少对数据库的查询量,所以,我认为,我真的不需要将数据存储在数据库中,而我可以从代码中以其他方式访问它.
甚至不考虑将其存储在数据库中,您的应用程序将会非常慢.
所以使用Cache进行这种操作.
为了统计人数,我会说:
为每个匿名用户分配一个随机ID并将其存储在他的会话中
在您的ajax电话中发送ID
在缓存中存储哈希数组[{ :user_id, :latest_ping }, {} ](为每个页面创建一个缓存var)
删除看起来太旧的数组元素
你有你的解决方案:用户数=数组中元素的nb