素材牛VIP会员
集思广益,关于有效浏览次数的计算,大家都是如何来做呢?
 间***p  分类:PHP代码  人气:680  回帖:7  发布于6年前 收藏

比如一个人对同一篇文章不停得刷新,这样不能算有效。我现在的想法是当用户第一次浏览文章的时候存一个cookie,cookie里有文章的id,有效期一个小时,如果同一小时,该用户访问该文章,如果cookie存在则不记录。不知道大家又没有更加高端,友好的统计方式。

 标签:php

讨论这个帖子(7)垃圾回帖将一律封号处理……

Lv6 码匠
12***23 页面重构设计 6年前#1

抛砖引玉一下,异步请求,用bloomfilter后台判断:
用户登录用用户id,用户未登录,用IP+UA或者其他生成用户标识
后台有一个bloomfilter的集合,用来判断是否已存在

Lv6 码匠
陈***丶 UI设计师 6年前#2

浏览记录最好通过日志来记录,然后进行日志分析即可,好处是异步。

日志记录用户ID,URL,访问时间。然后简单去做去重统计即可。

Lv4 码徒
sk***e4 页面重构设计 6年前#3

自己做个事件记录

客户端:
检测cookie,没有就随机生成一个作为客户标识(uid),并将超时设置很长很长....
js发送一条请求到事件记录服务器,参数:timestamp uid eventName eventValue
eventName 是事件名,比如 postVisit
eventValue是事件值,比如 <帖子ID>

服务端:
1. 记录事件到文件,可以按时间比如10分钟一个文件
2. 写个脚本 定时(10分钟)处理事件记录文件,根据eventName,eventValue 计算帖子访问量,然后更新数据库中对应字段(累加)

自由组合eventName,eventValue可以做多种事件统计

Lv6 码匠
飞***e 产品经理 6年前#4

这种统计就交给CNZZ,百度统计,谷歌统计等第三方统计平台吧。
浏览量,单页面浏览量,单人单页面浏览量,老访客,新访客等等都能统计到,展现方式也很友好。
还能数据导出。

Lv3 码奴
18***30 Linux系统工程师 6年前#5

登录用户:用户ID+log+时间判断
未登录用户:客户端IP+log+时间判断
cookie也不错的,如果要节约资源直接CNZZ统计、百度统计

Lv3 码奴
ou***un JS工程师 6年前#6

cookie记录不太合适,会造成request http header过大,现代浏览器可以用local storage存储在客户端,判断是否存在文章id再进行计数的request

Lv5 码农
lo***ge 其它 6年前#7

可以采用bitmap思想:每篇文章对应一个bitmap,每个uid对应bitmap中的某offset,某uid访问这篇文章,把uid对应的offset置为1。这样就不会出现重复访问的问题,而且有现成的方法计算值为1的bit的数量。如果网站访问量不是很大的话,每篇文章对应的bitmap为128*128足够了。这样有点是简单,缺点可能就是还有存在资源浪费。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取