在哪里实施连续访问的计数器?

时间:2013-03-26 13:48:19

标签: php javascript sql

所以首先我在stackoverflow和google中检查并研究了这个问题,但没有类似的问题。

我检查了Count number of consecutive visitsSQL Query: Visited the site each day for 30 consecutive days,但没有帮助。

所以我的问题是如果用户已连续x次访问该网站,实施此测试操作的位置,在我放在那里的链接,他们检查服务器端,但我认为它不是非常优化,因为每次用户访问网站时会触发查询,以检查今天的日期是否等于或高于LastVisit日期。

在我的应用程序中,每次用户加载页面以检索其信息时我都会查询,但如果我添加了

update userInfo 
set DaysConsecutivelyVisited=DaysConsecutivelyVisited+1
when DATEDIFF(CURDATE(),LastVisit)=1

然后每次用户加载页面时我都会有两个查询,所以我认为如果我在客户端而不是服务器端执行此操作会更好。我将在文档中放置一个属性或隐藏的跨度

<body data-lastvisit="2012-03-25" >

并在javascript中我会进行分析,如果$("data-lastvisit")等于昨天,我会发送一个ajax reqeuest来更新DaysConsecutivelyVisited

你怎么想,这是个好主意吗?

1 个答案:

答案 0 :(得分:2)

你需要一个参数来比较......不幸的是 - 它总是数据库表中的数据。您唯一能做的就是在pageload上检索userinfo,其中很可能包含一个字段last_visited。如果日期不等于今天的日期,请将其注册。

此外,我想创建一个字段consecutive_visits并在日期差异大于一天的情况下重置为0,并在有一天或更少差异的情况下递增它。这样,在pageload上获取后,你总是会在userobject中获得连续访问量。

在这种情况下,我绝对不认为需要ajax请求。它只是将当前用户数据与Date()实例或时间戳进行比较。所有计算都可以在服务器端完成,只有在值不同的情况下才需要额外的MySQL查询。