网站用的是分层结构【dao,service,restful展示,然后js通过ajax与restful交互,在前端用jQuery来展示出结果】,是用java写的。现在想实现一个功能,就是页面访问量。第一,能显示每天访问次数和总访问次数。第二,页面刷新后次数不会自动加1.第三,tomcat重启或者浏览器缓存清空时访问次数不会被初始化。
我现在想的是,建立一个数据库,然后用监听,当页面被打开之后就被监听到,然后在数据库里写入一次。再通过查询来显示出访问次数。
现在的问题在于,首先,数据库表使用频率这么高,一边写入,一边读取,出现锁表的可能性极大,这个问题该如何解决?
第二,如何保证每个页面都能统计到,因为页面很多,每个页面访问量肯定不同,如何做到分别精确统计。
第三,监听之前没接触过,这个该如何来写。是写在js里还是restful里。
希望,您能在帮忙介绍上述内容的时候写一个小小的demo,或者您有什么解决方案也可以分享给我。希望详细一些,因为说的太空不理解。最好能一步一步的讲一下,万分感谢。混分的就别来了,大不了不选择最佳答案也不会给你。
再次感谢。
补充一下,关于页面刷新后不会自动+1,指的是页面短期内一直刷新在同一个浏览器刷新不会被记录,在不同电脑一定间隔时间后点击该页面可以被记录
而且这是内部网站,第三方统计是不可行的。
所以麻烦复制粘贴的过过脑子再说
技术问题,还是去技术论坛吧
关于页面刷新后不会自动+1,指的是页面短期内一直刷新在同一个浏览器刷新不会被记录,在不同电脑一定间隔时间后点击该页面可以被记录
关于这个需求,你又不是做投票软件,记录用户ip地址,用户刷新一次或点击就算一次点击,不用做的这么精确吧!
一般统计网页程序,都是内嵌js脚本,你建立一个用于统计的js公用文件,然后需要统计的页面都引用他。
请参考Piwik
每次页面加载完毕,js就往你后台发一个请求,这个请求包含了,比如说客户端访问的url,然后d电脑分辨率啊什么的,到服务器端,你能得到ip地址,解析一下http请求头,也能得到一些信息。
然后记录下来。
追问现在可以做到在网站的某个模块统计访问量,比如公司A部门专门有一个模块,点击进去都是A部门的新闻信息,就是说统计点击A部门的次数是可以做到的。
但是A部门具体某一篇文章没办法统计,我现在不太明白的就是有人从后台重新上传一篇文章后,怎么显示这篇文章的统计量
。。。你就统计一个点击量啊
你就在调用新闻详情的方法里面点击量+1,就行了啊
例如
// 1.获取新闻详情
getNewsInfo(int newsId)
// 2.新增新闻点击量
addClickById(int newsId);