3

越来越多的网站正在显示某些页面收到的查看次数(以及在 dzone.com 上的点击次数)。跟踪视图#而不在每次加载时访问数据库的最佳实践是什么?

我脑子里有很多关于如何做到这一点的潜在想法,但似乎没有一个可行。

谢谢,第一次使用。

4

5 回答 5

3

我会首先尝试数据库方法——返回自动增量计数器的值应该是一个相当便宜的操作,所以你可能会感到惊讶。即使保留一个包含许多项目的表来记录命中计数也应该是相当高效的。

但问题是如何避免每次调用都击中数据库。我建议将表加载到 webapp 中并在那里增加它,只在定期或 webapp 关闭时将其备份到数据库。

于 2009-02-06T01:27:09.573 回答
2

一个便宜的技巧是简单地将值缓存几分钟。

无论如何,确切的查看次数并不重要,因为在繁忙的网站上,当访问者浏览页面时,已经有一批新的查看。

于 2009-02-06T07:47:11.693 回答
1

一种方法是使用memcached作为计数器。您可以修改此速率限制实现以充当通用计数器。密钥可以是 yyyymmddhhmm 格式,有效期为 15 或 30 分钟(取决于您认为是并发访问者的情况),然后get在显示页面时只需使用这些密钥。

用于与 memcache 服务器通信的不错的库有多种语言版本

于 2009-05-28T14:43:28.273 回答
0

您可以设置一个包含点击数的平面文件。这会有扩展问题,但它可以工作。

如果您不关心显示页面浏览量,您可以使用google analyticspiwik 之类的东西。两者都在页面加载后发出请求,因此不会影响加载时间。可能有一种方法可以向分析服务器发出 ajax 请求,但我不确定。Piwik 是开源的,所以你可以一起破解一些东西。

于 2009-02-05T18:02:52.667 回答
-1

如果您使用服务器端脚本,请在变量中增加它。如果您重新启动服务,它可能会被重置,因此如果需要准确性,这不是一个好主意。

于 2009-02-06T07:03:39.473 回答