开发者社区> 问答> 正文

java 如何统计某个网页浏览数,刷新的不进行统计:报错

现在有这样一个需求,就是用户可以看到站内的不同模块的不同文章,要对这个每个文章进行浏览数的统计,如果用户刷新网页的话,统计数其实是无效的,有没有好的解决方案?

展开
收起
kun坤 2020-06-05 23:52:55 516 0
1 条回答
写回答
取消 提交回答
  • 我能想到的一种算法: 对Request Headers进行判断。

    比如chrome浏览器按F5刷新的时候,请求头是有Cache-Control:max-age=0,按Ctrl+F5强制刷新,请求头是有Cache-Control:no-cache和Pragma:no-cache

    firefox行为和chrome一样。其他浏览器你可以看看效果。

    这种的对请求头的判断不能防止直接地址栏敲回车访问——因为这实际上不是刷新页面

    ######根据用户访问的ip地址,同一ip地址不叠加,如果是登录用户才能访问的,根据用户id来判断是否已访问过该文章######回复 @slliver : 没做过这方面的功能,只是个人的一点想法..######如果这么做的话,需要把当前访问的Ip地址和文章的ID进行存储,而且刷新的话,频繁的查询数据库,这么做也不是很好######

    使用cookie判断,将cookie设置成浏览器进程有效(可以搜索方法),根据cookie来判断是否算有效浏览。

    ######刷新的时候 你的http headers 中的refer 应该就是你当前页面,判断下 refer 是否是当前URL ######

    上面说到referer的,是没用的,F5刷新和原来的请求发送的referer是一样的

    基于上面的说法这个需求本身也有问题,怎么确定用户是两次想看这个文章还是误操作F5刷新了网页

    我的想法是,凡是请求的先记录先下来,最后做分析的时候在筛选,最后给出包括多次点击和去重点击的分析报告!

    ######如果刷新的不统计,那么每个人每个session只能浏览一次,根据session-id 去重就好了。。
    2020-06-05 23:53:03
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载