php - 计算总页面浏览量的更好方法?

标签 php mysql algorithm codeigniter

我正在开发一个电子商务网站,其中包含大约 2000-3000 种产品(数量在不久的将来可能会增加)。所以我需要计算特定产品的总页面浏览量。

我知道这可以通过在每次加载页面时更新一个 mysql 表来简单地完成,但这不是正确的方法,因为有些人只需再次按下重新加载按钮,页面浏览量就会上升。

所以我想以更好的方式做到这一点,所以总浏览量没有。有点接近独特/真实的。

我刚刚想出了一个想法,我可以通过 3 种方式做到这一点:\

1.使用 cookie 因此,如果我只是为每个产品存储 cookie,然后针对下一次唯一访问检查它,那么它可以完成,但我认为这不是更好的方法,因为如果没有cookie 总数的增加会影响我的页面在每次页面请求时的性能。

2.使用 session 我可以使用 session 来存储有关每个产品和访问者身份的数据,这样我就可以跟踪这是一次独特的访问还是重复的访问。但我认为 session 数据大小也如果用户在同一 session 中访问越来越多的产品,则增加。 那么为此目的使用session好吗?

3.Use databse 我可以创建一个表 page_views 然后通过检查上次访问之间的时间延迟并匹配 IP 地址和 session ID 来更新计数数据.

所以请建议我哪种方法更好用以及实现该方法的最佳方式。

我正在使用PHP(Codeigniter 2.0.1)+Mysql

最佳答案

我建议您创建一个新表来存储 session ID 变量,以及一个假设为 2 小时的过期时间。你可以在客户端服务器上用这个ID创建一个cookie,这样你就不用重复使用MySQL查询了。

在我的 Intranet 中,我只在我的网络点击表中创建了一个 last_visitor_ip 列,并且我将最后一个 IP 存储在那里,因此不计算连续刷新。 :)

关于php - 计算总页面浏览量的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9938937/

相关文章:

php - 我正在使用亚马逊 SES。如何使用 PHP 跟踪退回电子邮件?

PHP无限Ajax循环: any problems?

.net - .NET 消费者线程处理两个队列的算法(基于优先级)

algorithm - 当很难/不可能访问源代码时,如何找出方法调用的时间复杂度?

java - A* 算法不到处寻找

php - 如何在magento核心资源中设置utf8字符集?

php - 如何在 DDEV 的 Web 容器中安装像 mcrypt 这样的 pecl 扩展?

php - 如何使用php和sql获取表格中的复选框

mysql - 问题改变 innodb_log_file_size

php - 使用 PHP 从 MySQL 表中检索特定数据