0

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

我检查了连续访问次数SQL 查询:连续 30 天每天访问该站点,但没有帮助。

所以我的问题是,如果用户连续 x 次访问该站点,在我放在那里的链接中,他们在服务器端检查,但我认为它不是很优化,因为每次用户访问时,我认为它不是很优化触发网站查询以检查今天的日期是否等于或高于LastVisit日期。

在我的应用程序中,我已经在每次用户加载页面以检索他的信息时进行查询,但如果我添加一个

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

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

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

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

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

4

1 回答 1

2

您需要一个参数来比较.. - 不幸的是 - 始终是数据库表中的数据。您唯一能做的就是在页面加载时检索用户信息,其中很可能包含一个字段last_visited。如果日期不等于今天的日期,请注册它。

此外,我会说创建一个字段consecutive_visits并重置为 0,以防日期的差异大于一天,并增加它以防一天或更少的差异。这样,在页面加载时获取用户对象后,您始终可以在用户对象中获得连续访问量。

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

于 2013-03-26T13:56:33.260 回答