我现在想实现,当用户访问单页面时,记录用户访问该页面的时间. 从用户进入系统加载页面 到退出页面的时间.

解决方案 »

  1.   

    我只能给个思路
    1 在页面开头,用js得到当前的时间
    2 在 onUnload 方法中, 也就是用户离开页面的方法中,再次得到当前时间,减去开始时间得到间隔
    3 调用 Ajax把页面和时间传过去就可以了。
      

  2.   

    记录用户访问页面的时间:可以通过创建一些Jsp作用域通信对象来判断用户是否在线或者下线。如果是整个系统的话,可以创建一个session对象,给该session对象设置一个初始值,并且获取当前的时间,然后根据这个值得,如果该值发生变化过后,又恢复到先前设置的初始值,说明整个会话结束,然后取结束时间,两者相减得到访问系统的时间。如果是单个页面的话,也可以用session对象,也可以用pageContext对象,两者用法基本相同,只是session作用域比pageContext作用域广。一个作用于正个会话,而另一个只针对当个页面。
      

  3.   

    起始时间好办,关键是结束时间,我给一个比较精确的,但是负担会非常重的方法1 客户端采用 Ajax的PeriodUpdate(), 每隔一段时间调用统计程序
    2 服务端根据session, 记录对应的当前时间计算出停留时间,并记录数据库此方法能最大精度的和安全的保存停留时间,不过对服务器的负载就根据你的间隔不同而不同了。
    间隔太小,负载大
      

  4.   

    不要用ajax,ajax在页面离开的时候会出意外,建议采用cookie,当用户进入页面时,新建一个由ip,页面地址做为名字的cookie,并记录当前时间,当用户离开页面时,你再去读取这个cookie,读的时候你判断cookie里面的页面地址是否和当前一致,如果不一致则表示用户离开,并根据cookie里面的时间和当前时间计算出停留时间,如果一致表示用户刷新该页面,时间不做任何处理。这样对服务器的压力是最小的。
      

  5.   

    9楼的,你怎么知道用户离开页面,如果onUnload还能用,那我在1楼就给出答案了。
    而且你保存在cookie里面不可行,如果页面非常多,用户同时访问多个页面,cookie根本存不下哦!好像最多存20个吧!还有,我7楼的方法可以最大程度的减少用户断线,死机,强制关闭等带来的统计误差,当然是以负载为代价的!
      

  6.   

    买个JYC统计软件不就可以了。
    http://www.adjyc.com