现在有这样一个需求,就是用户可以看到站内的不同模块的不同文章,要对这个每个文章进行浏览数的统计,如果用户刷新网页的话,统计数其实是无效的,有没有好的解决方案?
我能想到的一种算法: 对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 去重就好了。。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。