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注入漏洞入门
推荐文章
热门文章
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 版权声明
Copyright 2007 - 2008 QQYP.NET Inc. All Rights Reserved 原味网络学院 版权所有
浙ICP备05017835号
Copyright 2007 - 2008 QQYP.NET Inc. All Rights Reserved 原味网络学院 版权所有
浙ICP备05017835号
