【发布时间】:2009-05-10 07:36:41
【问题描述】:
有什么好的方法可以准确统计页面的浏览次数?
我正在使用 Django。具体来说,我不想刷新页面以增加计数。
【问题讨论】:
有什么好的方法可以准确统计页面的浏览次数?
我正在使用 Django。具体来说,我不想刷新页面以增加计数。
【问题讨论】:
据我所知,目前没有浏览器向服务器发送任何类型的消息/标头,说明请求是否来自刷新。
我可以看到不计算用户刷新页面的唯一方法是跟踪用户查看页面的 IP 和时间,然后如果用户最后一次查看页面不到 30 分钟前,比如说,你会将其视为刷新并不增加页面浏览次数。
IMO 大多数页面刷新应该无论如何都算作一次页面浏览,因为我刷新的唯一原因是查看可能已添加的新数据,或者偶尔意外刷新/重新加载之后浏览器崩溃(上述方法会关闭)。
【讨论】:
您可以为每个用户提供在一天结束时到期的 cookie,其中包含一个唯一编号。如果他重新加载了一个页面,你可以检查她当天是否已经被计算在内。
【讨论】:
您可以创建一个包含页面的唯一访问者的表格,例如VisitorIP + X-Forwarded-For 内容、User-Agent 字符串以及某种 PageID。如果数据本身无关紧要,您可以从这些值创建一个 md5/sha1 哈希(当然除了 PageID 之外)。但请注意,此表会增长得非常快。
我建议不要为此设置 cookie。它们的大小有限,并且用户访问的页面很多,您可能会达到该限制并使解决方案不可靠。此外,由于它变成了交互式内容,因此在客户端缓存此类页面变得更加困难(请参阅Cacheability)。
【讨论】:
您可以编写一个 django 中间件并捕获 request.url,然后设置一个带有 url / 访问列的表。注意并发更新的事务。 如果你有负载问题,你可以使用 memcached 和 incr 或添加函数并定期更新数据库表以避免事务锁。
【讨论】: