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

回复内容:

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

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

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

登录用户:用户ID+log+时间判断

未登录用户:客户端IP+log+时间判断

cookie也不错的,如果要节约资源直接CNZZ统计、百度统计

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

这种统计就交给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是事件值,比如

服务端:

1. 记录事件到文件,可以按时间比如10分钟一个文件

2. 写个脚本 定时(10分钟)处理事件记录文件,根据eventName,eventValue 计算帖子访问量,然后更新数据库中对应字段(累加)

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

抛砖引玉一下,异步请求,用bloomfilter后台判断:

用户登录用用户id,用户未登录,用IP+UA或者其他生成用户标识

后台有一个bloomfilter的集合,用来判断是否已存在

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php 计算浏览数,集思广益,关于有效浏览次数的计算,大家都是如何来做呢?...相关推荐

  1. 【SQL开发实战技巧】系列(十七):数据仓库中时间类型操作(初级)确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  2. php设置浏览次数,【php】集思广益,关于有效浏览次数的计算,大家都是如何来做呢?...

    比如一个人对同一篇文章不停得刷新,这样不能算有效.我现在的想法是当用户第一次浏览文章的时候存一个cookie,cookie里有文章的id,有效期一个小时,如果同一小时,该用户访问该文章,如果cooki ...

  3. 用线性回归无编码实现文章浏览数预测

    继 无编码利用协同算法实现个性化推荐,我纯粹使用SQL和配置实现了一个更为复杂一些的,计算文章词汇的tf/idf值,将浏览数作为预测值,使用线性回归算法进行模型训练的示例.帮助大家更好的了解Strea ...

  4. 庆祝自开博来首篇浏览数过万的随笔诞生 - [原创]从程序员角度分析安徽电信HTTP劫持的无耻行径......

    这是自从2009年创立本博客以来,首个浏览数过万的随笔.庆祝!庆祝! 1. [原创]从程序员角度分析安徽电信HTTP劫持的无耻行径,以及修改Hosts文件,使用OPENDNS无效情况下的解决方案(11 ...

  5. 用lxml的xpath演示爬虫提取笑话集网页其中的标题,url,浏览数,日期,笑话内容

    人狠话不多,直接上源码 from urllib import request,parse from urllib import error import chardet from lxml impor ...

  6. 翼方健数曹华:构建数据和计算互联网的必由之路

    智能时代,数据无疑是最活跃的生产要素,它将决定未来的生产力和生产关系.其中,共享和保护数据,促进数据流通,并最大化数据价值是业内技术发展所关注的焦点. 诞生在这一背景下的隐私计算技术正在蓬勃发展,隐私 ...

  7. COUNT(*)计算行数有哪些优化手段

    COUNT(*)计算行数有哪些优化手段 --无索引 DROP TABLE T_20170704_COUNT_LHR_01 PURGE; CREATE TABLE T_20170704_COUNT_LH ...

  8. Apache Flink不止于计算,数仓架构或兴起新一轮变革

    作者 | 蔡芳芳 采访嘉宾 | 王峰(莫问) 维基百科的"Apache Flink"词条下,有这么一句描述:"Flink 并不提供自己的数据存储系统,但为 Amazon ...

  9. android 根据文本计算行数,ios 获取Text行数和每行显示的内容

    该方法主要使用了CoreText中的内容,了解更多CoreText的内容请看CoreText系列 下面是具体代码 - (NSArray *)getLinesArrayOfStringInLabel:( ...

最新文章

  1. 刺客信条奥德赛无法加载库_点评刺客信条起源、奥德赛、英灵殿,哪个最好玩?...
  2. html,h4,h5的区别,(转)H5和H4的对比听感
  3. MongoDB 启动 Failed to connect to 127.0.0.1:27017, reason: 由于目标计算机积极拒绝,无法连接。...
  4. python画图程序有图-python画图程序
  5. 模p加法和模p乘法学习
  6. insert exec 语句不能嵌套_走向DBA「MSSQL篇」 - 从SQL语句的角度提高数据库的访问性能...
  7. 还在搞三层架构?DDD 分层架构了解下!
  8. evolving checkers players [Fogel and Chellapilla, 2002]
  9. Excel零基础入门(真对2021版Excel)
  10. photoshop切片的使用
  11. 秦小明 第七讲 资产定价模型,股票定价
  12. 如何认识和投身 Web 3.0?
  13. 联想服务器出现系统恢复选项,Win10更新系统后开机提示自动修复的常规解决方案...
  14. Java培训:Java枚举是什么
  15. android 判断图片的格式的,android判断文件是否是图片文件的方法
  16. android airplay音乐播放器,您需要知道的关于使用AirPlay播放音乐的一切 | MOS86
  17. APNS证书制作问题
  18. Linux驱动调试之修改系统时钟中断定位系统僵死问题
  19. 红帽linux6.4安装教程,RedHat6.4图文安装教程---Minimal版(详细版)
  20. Kendo UI 绑定行点击事件

热门文章

  1. 服务器证书来自不可信任的授权中心6,该证书并非来自可信的授权中心–解决办法...
  2. 计算机工作者,关于电脑工作者的常识
  3. windows 11 打开虚拟机的时候报错:你的设备遇到问题,需要重启
  4. Android自定义表情键盘与输入法键盘冲突
  5. 中国最大的货源平台1688跨境专供:20个金牌产地
  6. 今年计算机考研,到底有多难?
  7. GM65驱动程序整理
  8. vue项目打包部署到服务器
  9. QQ的第三方授权和取消第三方授权
  10. QR分解,SVD分解以及应用