日期:2014-05-17  浏览次数:20929 次

在线停留时间统计问题
我在做 在线学习系统 但 这里出了有点错误
请大家给我 看看这个代码 
用户: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 Acti