文章分类   |   推荐文章   |   最新文章   |   热点文章   |   网站地图   |   firefox下载
原味网络学院

asp 如何精确的统计会员的在线时间

作者:佚名 来源:网上收集 发布时间:2008-9-7 21:43:18 点击率:
我的做法是这样的:监控页面  
  <%   TimerBase   =   1 '设置页面刷新频率,单位是分钟   %>  
  <script   language=javascript>  
  function   OnlineUser(){  
  var   the_timeout;  
  window.status="当前用户:"+"<%=Session("MaintStaffName")%>"+"                       "+"<%=doOnlineUser()%>"  
  the_timeout   =   setTimeout("doTimer();",   <%=TimerBase%>*60000);  
  }  
   
  function   doTimer()  
  {  
  document.frmname.submit();  
  }  
   
  </script>  
  <BODY   onload="OnlineUser()">  
   
   
  <%  
  Function   doOnlineUser()  
  Dim   frs,   fsql,fcn  
  Set   fcn   =   Server.CreateObject("ADODB.Connection")  
   
  '更新所有用户的在线状态  
  fsql   =   "   update   t_staff_city_province   set   "   &_  
  "   online_sts   =   1,pre_online_date=getdate()   "   &_  
  "   where   online_sts=0   and   datediff(mi,pre_online_date,getdate())>2*"   &   TimerBase  
  fcn.Open   Application("Vtus_ConnectionString")  
  fcn.Execute   fsql  
  fcn.Close    
   
  '首先更新当前用户上一次在线时间,累计在线时长,在线状态  
  fsql   =   "   update   t_staff_city_province   set   "   &_  
  "   maint_online_time   =   isnull(maint_online_time,0)+datediff(mi,pre_online_date,getdate()),online_sts=0,"   &_  
  "   pre_online_date   =   getdate()   "   &_  
  "   where   staff_id   =   "   &   Session("MaintStaffId")    
  fcn.Open   Application("Vtus_ConnectionString")  
  fcn.Execute   fsql  
  fcn.Close  
  Set   fcn=Nothing  
   
  '查询在线员工  
  doOnlineUser   =   "在线员工:"  
  fsql   =   "   select   name   from   t_staff_city_province   where   city_zone=0   and   online_sts=0   "  
  Set   frs   =   Server.CreateObject("ADODB.Recordset")  
  frs.Cursorlocation   =   adUseClient  
  frs.Open   fsql,Application("Vtus_ConnectionString")  
  do   while   not   frs.EOF  
  If   frs.AbsolutePosition   =1   Then    
  doOnlineUser   =   doOnlineUser   &   frs("name")  
  Else  
  doOnlineUser   =   doOnlineUser   &   ","   &   frs("name")  
  End   If  
  frs.MoveNext  
  loop  
   
  End   Function  
  %>  
  这个方式只适合少数人访问,如果人多了,可能会有效率的问题,呵呵,
    上一篇:ASP简单实现数字字符混合验证码
    下一篇:SQL注入漏洞入门

推荐文章

热门文章