跟踪用户登录的次数?

时间:2011-07-19 11:06:13

标签: database cookies login load

我正在实施一种机制,其中每个访问我们网站的用户都会在前3次显示一个特殊的启动画面,然后再显示一次。

我可以想到以下方法 - 从降低总体成本(服务器负载 - 处理速度和数据库负载)的角度来看,什么是“最佳”方法。

A. Having another field in the users table which keeps count
B. Keeping the users which are at different 'states' in different tables 
   (yeah - doesnt make much sense to me either)
C. Keeping count via a cookie at the client end

还有什么可能吗?

3 个答案:

答案 0 :(得分:0)

跟踪客户端(cookie)是最好的方法,因为您没有访问数据库而且没有安全性或可靠性问题。 一个轻微的挑战是如何检测用户已经开始“会话”。也就是说,假设用户输入页面A(增加登录计数器cookie),然后转到页面B然后再次转到A.你应该确保访问的独特性;你不希望计数器再次增加。实现此目的的一种方法是使用标记访问的第二个cookie,其未设置的到期值因此在关闭浏览器等时到期。

作为“备份”措施,您可以在数据库中标记用户已经第3次访问的事实,然后在更改浏览器,清除cookie等方面具有容错能力。

答案 1 :(得分:0)

就服务器/数据库负载而言,在cookie中保持计数很容易是最佳选择。当然,缺点是,如果用户清除或禁用他们的cookie,他们将再次看到启动画面。

然而,大多数用户并不经常清除他们的cookie,所以我建议采用混合方法。使用cookie来保持计数,但也在数据库中添加一个标志。一旦cookie中的计数达到3,就设置数据库标志。这样,如果用户在达到所需的计数后清除其cookie,您仍然可以记得由于该标志而不显示闪屏。

如果用户在达到第三次计数之前清除了他们的cookie,他们仍会看到更多次飞溅。但是由于用户不知道飞溅应该显示多少次,并且因为他们从未达到飞溅将停止显示的状态,从他们的观点来看,体验仍然是一致的。一旦他们将cookie保持足够长的时间以使计数达到3,那么启动屏幕会停止,并且它们会停止。

答案 2 :(得分:0)

每次用户更改浏览器,计算机(或移动设备,平板电脑等),清空Cookie,切换到隐身模式等时,使用Cookie都会重置计数器。

除非您将用户名刷入Cookie名称,否则它还会计算使用与单个用户相同的浏览器的多人访问。

如果您想跟踪每位用户,则需要在服务器上进行跟踪。