php - 集思广益,关于有效浏览次数的计算,大家都是如何来做呢?
大家讲道理
大家讲道理 2017-04-10 14:42:28
[PHP讨论组]

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(7)
ringa_lee

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

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

迷茫

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

大家讲道理

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

PHPz

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

伊谢尔伦

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

天蓬老师

自己做个事件记录

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

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

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

大家讲道理

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号