所以首先我在stackoverflow和google中检查并研究了这个问题,但没有类似的问题。
我检查了Count number of consecutive visits和SQL 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
答案 0 :(得分:2)
你需要一个参数来比较......不幸的是 - 它总是数据库表中的数据。您唯一能做的就是在pageload上检索userinfo,其中很可能包含一个字段last_visited
。如果日期不等于今天的日期,请将其注册。
此外,我想创建一个字段consecutive_visits
并在日期差异大于一天的情况下重置为0,并在有一天或更少差异的情况下递增它。这样,在pageload上获取后,你总是会在userobject中获得连续访问量。
在这种情况下,我绝对不认为需要ajax请求。它只是将当前用户数据与Date()实例或时间戳进行比较。所有计算都可以在服务器端完成,只有在值不同的情况下才需要额外的MySQL查询。