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