当前位置:编程学习 > C#/ASP.NET >>

问一个关于点击率统计的问题

例如统计新闻的点击率,由于我的页面是静态的,那么需要统计的话,必须采用AJAX的方式实时去数据库拿这条新闻的点击率字段,如果用户重复刷新页面的话点击率就会猛增,请求也会不断的发送,请问一般大型门户网站的点击率是怎么实现统计的呢?

另外设计表储存IP? --------------------编程问答-------------------- 我也很想知道大家的办法
   曾经做过类似的功能,也拿出来问过,回答大都文不对题,也没搜到想要的解决方案
我的解决方案:
    ajax请求到 :可以是网站的一个页面、另一个网站的页面、一个自己写的http服务。
请求不停发送这个我们是无法阻止的, 请求来了,
第一步: 查看以ip 为键的绝对过期时间缓存 中是否有存在当前请求ip ,如果存在不处理,退出
反之:进入第二步;
第二步:更新以文章id为键的缓存 ,如果缓存里面点击数大于n或者缓存已经存在x分钟 ,将点击数更新到数据库,并且clear以这个id为键的缓存,否则在这个缓存的点击数上累加1;
注意:因为这里用到了缓存,而且有绝对过期时间,所以如果是网站的话,进程池的回收时间一定不能频繁 。
就这么多了,抛砖引玉

--------------------编程问答-------------------- 怎么离开数据库就不会干活了吗 --------------------编程问答-------------------- LZ你的静态页面可以做成内容完全静态化,就是存储html标签的那种,但是  点击率那点可以做成动态的

页面进来update一下点击量的字段 再查询出来即可 --------------------编程问答-------------------- 第一次访问时设置个Session或者Cookie表明已读,先检测有没有这个标记 --------------------编程问答--------------------
引用 2 楼 bdmh 的回复:
怎么离开数据库就不会干活了吗


这个倒不是,只是想知道更好的方式,如果是COOKIE存标记的话,那么会不会标记太多了。

缓存我也想过,先存放到缓存里面一定时再写入数据库。

想知道大网站这方面的做法! --------------------编程问答-------------------- 同求,刚好碰到这东西 --------------------编程问答--------------------
引用 2 楼 bdmh 的回复:
怎么离开数据库就不会干活了吗


你能回答,就回答。不回答,就不要出言训斥别人。
别人发帖求教问题,说明人家虚心求指教,你要么说,你要么闭嘴。 --------------------编程问答-------------------- 不能用IP,若客户端是一个局域网内,那对外都是同一IP,所以不准确.
1、用 Session 或者 Cookie 
2、在服务器端建立缓存 每个页面访问次数(但同Session 或 Cookie只算一次不累加)
3、定时(如一个小时或10分钟)将缓存存入持久对象(如数据库、文件等)后清空缓存,不要每次都更新数据库(访问量大时服务器压力大,也没有必要).
4、 --------------------编程问答-------------------- 看服务器日志不完了么 --------------------编程问答-------------------- 不要用cookie,禁止cookie或者编辑cookie是很容易的事


1.首先使用session判断是否已访问过该页面,可加入时限条件(比如间隔30分钟的再次访问也算有效),阻挡一定时限内的多次访问(刷新)
2.在通过1的限定后,将该访问行为记录到缓存中,定时更新到数据库,这个时限大概在5到30分钟不等,关键看整体访问量,时间长,页面多,则会占用较多内存。


--------------------编程问答--------------------
引用 9 楼 huayy 的回复:
看服务器日志不完了么

大神,你每天看服务器日志去数访问量,然后找到对应的静态页,一页页修改?



静态页,通过ajax取访问量,通过ajax记录访问行为,即可。 --------------------编程问答-------------------- 还是Session或者Cookie比较方便
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,