读书人

在线停留时间统计有关问题

发布时间: 2012-05-09 12:13:59 作者: rapoo

在线停留时间统计问题
我在做 在线学习系统 但 这里出了有点错误
请大家给我 看看这个代码
用户:billy 权限:管理员 时间[2004年1月21日 20:54:08] 停留[0小时0分钟] 空闲[0分钟12秒]

显示的BOTTOM.HTM文件

<SCRIPT language=JavaScript>
<!--
function bar()
{

var oXMLDoc = new ActiveXObject('MSXML'); //创建'MSXML'对象

sURL = "loginxml.asp" //获取登陆状态数据的地址

oXMLDoc.url = sURL; //load数据

var oRoot=oXMLDoc.root; //获取返回xml数据的根节点
if(oRoot.children != null)

{


//根据返回的数据在客户端显示

user.innerHTML=oRoot.children.item(0).text; //用户

myclock.innerHTML=oRoot.children.item(1).text; //时间

stay.innerHTML=oRoot.children.item(2).text; //停留

free.innerHTML=oRoot.children.item(3).text; //空闲

qx.innerHTML=oRoot.children.item(4).text; //权限


}
if (oRoot.children.item(5).text>1800) //空闲时间超过30分钟则自动转到退出登陆页面
window.parent.location="/user/logoff.asp?id=1";


timeoutid = setTimeout("bar()",1000) //没1秒取得一次数据,}
//-->
</SCRIPT>

用户:<font color="#FF0000"><span id=user></span></font> 权限:<font color="#FF0000"><span id=qx></span></font> 时间[<span id=myclock></span>] 停留[<span id=stay></span>] 空闲[<span id=free></span>]


提供XML数据的ASP页面 LOGINXML.ASP

<%
username=session("userName")
qxdm=session("qxdm")
set rs = server.createobject("adodb.recordset")
rs.source = "select * from userlogin where username='"&username&"'"
rs.open rs.source,conn,1,1
logindate=rs("logindate")
active=rs("active")
rs.close
stay=DateDIff("s",logindate,now())
off=DateDIff("s",active,now())
stay=stay/60
stay=Int(stay/60)&"小时"&Int(stay mod 60)&"分钟"
free=Int(off/60)&"分钟"&Int(off mod 60)&"秒"
us=DatePart("yyyy",date)&"年"&DatePart("m",date)&"月"&DatePart("d",date)&"日 "&time
%>
<?xml version="1.0" encoding="gb2312" ?>

<plan>

<user><%=username%></user>

<date><%=us%></date>

<active><%=stay%></active>

<free><%=free%></free>

<qx><%call qx(qxdm)%></qx>

<off><%=off%></off>
</plan>

在学习页面上正常显示 如:0小时41分钟 但是不能更新数据库,数据库字段空白的 。还有提示这行有错误
timeoutid = setTimeout("bar()",1000) //没1秒取得一次数据,}
//-->

请大家解决一下 ~

[解决办法]
首先 看下 loginxml.asp 是否正常显示数据

然后 另存一个XML 文件 试一试 是否是 因为 文件格式不能 解析 造成

timeoutid = setTimeout(bar,1000);
[解决办法]

HTML code
<body onload="bar()"> 用户:<font color="#FF0000"><span id=user></span></font> 权限:<font color="#FF0000"><span id=qx></span></font> 时间[<span id=myclock></span>] 停留[<span id=stay></span>] 空闲[<span id=free></span>] </body> <SCRIPT language=JavaScript>   <!--   function bar()  {   var oXMLDoc = new ActiveXObject('MSXML'); //创建'MSXML'对象    sURL = "loginxml.asp" //获取登陆状态数据的地址    oXMLDoc.url = sURL; //load数据     var oRoot=oXMLDoc.root; //获取返回xml数据的根节点   if(oRoot.children != null)   {    //根据返回的数据在客户端显示   user.innerHTML=oRoot.children.item(0).text; //用户    myclock.innerHTML=oRoot.children.item(1).text; //时间    stay.innerHTML=oRoot.children.item(2).text; //停留    free.innerHTML=oRoot.children.item(3).text; //空闲    qx.innerHTML=oRoot.children.item(4).text; //权限    }   if (oRoot.children.item(5).text>1800) //空闲时间超过30分钟则自动转到退出登陆页面   window.parent.location="/user/logoff.asp?id=1";   setTimeout("bar()",1000); //没1秒取得一次数据, }   //-->   </SCRIPT> 


[解决办法]

HTML code
<body onload="bar()"> 用户:<font color="#FF0000"><span id=user></span></font> 权限:<font color="#FF0000"><span id=qx></span></font> 时间[<span id=myclock></span>] 停留[<span id=stay></span>] 空闲[<span id=free></span>] </body> <SCRIPT language=JavaScript>    <!--    function bar()  {    var oXMLDoc = new ActiveXObject('MSXML'); //创建'MSXML'对象    sURL = "loginxml.asp" //获取登陆状态数据的地址     oXMLDoc.url = sURL; //load数据      var oRoot=oXMLDoc.root; //获取返回xml数据的根节点    if(oRoot.children != null)   {    //根据返回的数据在客户端显示   user.innerHTML=oRoot.children.item(0).text; //用户    myclock.innerHTML=oRoot.children.item(1).text; //时间    stay.innerHTML=oRoot.children.item(2).text; //停留    free.innerHTML=oRoot.children.item(3).text; //空闲    qx.innerHTML=oRoot.children.item(4).text; //权限     }    if (oRoot.children.item(5).text>1800) //空闲时间超过30分钟则自动转到退出登陆页面   window.parent.location="/user/logoff.asp?id=1";    setTimeout("bar()",1000); //没1秒取得一次数据,  }    //-->    </SCRIPT> 

读书人网 >ASP

热点推荐