10

有什么好的方法可以准确计算页面被查看的次数?

我正在使用 Django。具体来说,我不想刷新页面以增加计数。

4

4 回答 4

2

据我所知,目前没有浏览器向服务器发送任何类型的消息/标头,说明请求是否来自刷新。

我可以看到不计算用户刷新页面的唯一方法是跟踪用户查看页面的 IP 和时间,然后如果用户最后一次查看该页面的时间少于 30 分钟,例如,您会将其视为刷新而不增加页面查看次数。

无论如何, IMO 大多数页面刷新都应该算作页面视图,因为我刷新的唯一原因是查看可能已添加的新数据,或者浏览器崩溃后偶尔意外刷新/重新加载(上述方法会忽略)。

于 2009-05-10T07:52:17.970 回答
0

您可以为每个用户提供在一天结束时到期的 cookie,其中包含一个唯一编号。如果他重新加载页面,您可以检查她当天是否已经被计算在内。

于 2009-05-10T08:02:24.420 回答
0

您可以创建一个包含页面的唯一访问者的表格,例如 VisitorIP + X-Forwarded-For 内容、User-Agent 字符串以及某种类型的 PageID。如果数据本身无关紧要,您可以从这些值创建一个 md5/sha1 哈希(当然除了 PageID 之外)。但是请注意,此表将增长得非常快。

我建议不要为此设置 cookie。它们的大小有限,并且用户访问的页面很多,您可能会达到该限制并使解决方案不可靠。此外,它也使得在客户端缓存此类页面变得更加困难(请参阅Cacheability),因为它变成了交互式内容。

于 2009-05-10T08:06:28.797 回答
0

您可以编写一个 django 中间件并捕获 request.url,然后设置一个带有 url / 访问列的表。注意并发更新的事务。如果你有负载问题,你可以使用 memcached 和 incr 或 add 函数并定期更新数据库表以避免事务锁。

于 2009-05-10T10:12:58.290 回答