开发者社区> 问答> 正文

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

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

我能想到的一种算法: 对Request Headers进行判断。

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

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

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

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

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

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

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

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

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

如果刷新的不统计,那么每个人每个session只能浏览一次,根据session-id 去重就好了。

展开
收起
huc_逆天 2020-05-28 09:17:19 904 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

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