如何在Web应用程序中创建可靠且强大的页面视图计数器?

时间:2009-02-17 18:38:58

标签: count views visitor

我想计算网页上的访问次数,此页面代表我的模型的一个元素,就像Stack Overflow问题页面视图一样。

如何以可靠的方式(一次访问,一次网页浏览,不重复)和健壮(考虑性能,而不仅仅是新的表属性'visits_count')

3 个答案:

答案 0 :(得分:7)

你不能。

  • 多人可以使用相同的IP访问您的网站(使ip存储无用)
  • 多人可以通过同一台PC访问您的网站
  • 多人可以通过同一浏览器访问您的网站(使Cookie无用)

您可以获得的最接近的是将访问者IP与Cookie结合使用,以便将来不计入这些内容。这是一个权衡,如果他们清除cookie,他们就是新访客。如果您只存储IP,则将整个代理计为一个访问者。

另一个选择是使用用户帐户并准确跟踪哪个用户查看了哪个页面,但对于公共网站来说这不是一个好选择。

答案 1 :(得分:1)

我建议,实际上,使用Google Analytics。虽然没有什么是真正准确的,但它们确实对它有很好的准确性,并且你可以提取的报告和有用信息的水平是惊人的。

更不用说每月最多可获得4,000,000次页面浏览量。

http://www.google.com/analytics

答案 2 :(得分:0)

处理性能问题的一种方法是对插入进行计算。像

这样的东西
UPDATE stat SET viewcount = viewcount+1 WHERE date = CURDATE()

这不是一个完美的解决方案,但可以帮助你。

不重复这样做可能是一个棘手的问题。我只是依赖于使用会话或cookie,但你可以提出各种策略来过滤爬虫,没有cookie支持的客户等等。