送分问题: 用户访问单个页面时间统计 我现在想实现,当用户访问单页面时,记录用户访问该页面的时间. 从用户进入系统加载页面 到退出页面的时间. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我只能给个思路1 在页面开头,用js得到当前的时间2 在 onUnload 方法中, 也就是用户离开页面的方法中,再次得到当前时间,减去开始时间得到间隔3 调用 Ajax把页面和时间传过去就可以了。 记录用户访问页面的时间:可以通过创建一些Jsp作用域通信对象来判断用户是否在线或者下线。如果是整个系统的话,可以创建一个session对象,给该session对象设置一个初始值,并且获取当前的时间,然后根据这个值得,如果该值发生变化过后,又恢复到先前设置的初始值,说明整个会话结束,然后取结束时间,两者相减得到访问系统的时间。如果是单个页面的话,也可以用session对象,也可以用pageContext对象,两者用法基本相同,只是session作用域比pageContext作用域广。一个作用于正个会话,而另一个只针对当个页面。 起始时间好办,关键是结束时间,我给一个比较精确的,但是负担会非常重的方法1 客户端采用 Ajax的PeriodUpdate(), 每隔一段时间调用统计程序2 服务端根据session, 记录对应的当前时间计算出停留时间,并记录数据库此方法能最大精度的和安全的保存停留时间,不过对服务器的负载就根据你的间隔不同而不同了。间隔太小,负载大 不要用ajax,ajax在页面离开的时候会出意外,建议采用cookie,当用户进入页面时,新建一个由ip,页面地址做为名字的cookie,并记录当前时间,当用户离开页面时,你再去读取这个cookie,读的时候你判断cookie里面的页面地址是否和当前一致,如果不一致则表示用户离开,并根据cookie里面的时间和当前时间计算出停留时间,如果一致表示用户刷新该页面,时间不做任何处理。这样对服务器的压力是最小的。 9楼的,你怎么知道用户离开页面,如果onUnload还能用,那我在1楼就给出答案了。而且你保存在cookie里面不可行,如果页面非常多,用户同时访问多个页面,cookie根本存不下哦!好像最多存20个吧!还有,我7楼的方法可以最大程度的减少用户断线,死机,强制关闭等带来的统计误差,当然是以负载为代价的! 买个JYC统计软件不就可以了。http://www.adjyc.com js表单验证只通过第一项就提交了 紧急求助,求一个小插件! 上传文件出错 在Java Bean中Sleep 怎么输出的是这样的呢? 请问,Jsp的Java应该怎么配置 高手指路,谢谢.怎样学习jsp,我只会asp. jsp到底有多难?? cookie问题(急,在线等) 谁能提供一个jsp的论坛,数据库为oracle或者access。 请问关于JSP,IomCat的环境配置问题. 利用ajax技术动态增加删除select下拉框的问题 html:text 中value的问题?
1 在页面开头,用js得到当前的时间
2 在 onUnload 方法中, 也就是用户离开页面的方法中,再次得到当前时间,减去开始时间得到间隔
3 调用 Ajax把页面和时间传过去就可以了。
2 服务端根据session, 记录对应的当前时间计算出停留时间,并记录数据库此方法能最大精度的和安全的保存停留时间,不过对服务器的负载就根据你的间隔不同而不同了。
间隔太小,负载大
而且你保存在cookie里面不可行,如果页面非常多,用户同时访问多个页面,cookie根本存不下哦!好像最多存20个吧!还有,我7楼的方法可以最大程度的减少用户断线,死机,强制关闭等带来的统计误差,当然是以负载为代价的!
http://www.adjyc.com