我想统计一个网页上的访问量,这个页面代表了我模型的一个元素,就像 Stack Overflow 问题页面浏览量一样。
如何以可靠(一次访问,一次综合浏览,无重复)和稳健(考虑性能,而不仅仅是新表属性“visits_count”)来做到这一点
我想统计一个网页上的访问量,这个页面代表了我模型的一个元素,就像 Stack Overflow 问题页面浏览量一样。
如何以可靠(一次访问,一次综合浏览,无重复)和稳健(考虑性能,而不仅仅是新表属性“visits_count”)来做到这一点
你不能。
您可以获得的最接近的方法是将访问者 IP 与 cookie 结合起来存储,以便将来不计算在内。这是一个权衡,如果他们清除 cookie,他们就是新访客。如果您只存储 IP,则将整个代理计为一个访问者。
另一种选择是使用用户帐户并准确跟踪哪个用户查看了哪个页面,但这对于公共站点来说并不是一个很好的选择。
实际上,我建议使用 Google Analytics。虽然没有什么是真正准确的,但他们确实在这方面做得非常好,而且您可以提取的报告和有用信息的水平令人惊叹。
更不用说每月最多可免费获得 4,000,000 次页面浏览量。
处理性能问题的一种方法是在插入时进行计算。就像是
UPDATE stat SET viewcount = viewcount+1 WHERE date = CURDATE()
这不是完美的解决方案,但可以为您提供一些帮助。
不重复地做到这一点可能是一个棘手的问题。我会简单地依赖使用会话或 cookie,但您可以想出各种策略来过滤爬虫、不支持 cookie 的客户端等等。