问题的关键是如何判断用户已经离开,和当用户离开时如何执行一个文件或一个函数。
经过和网上一些朋友的探讨,终于解决了这个问题。
解决的原理为:编写一个通用页面,所谓的通用页面,就是应用里的每个页面都包含这个页面,例如:header.ASP,在这个页面里,用XMLHTTP写一段代码,这段代码的作用是每隔10秒或20秒就向服务器发送一个请求,目的是更新当前用户的在线时间并删除在线时间超过一定时间的用户,使数据库中的在线用户记录保持一定的实时性。
主要实现方法为:
新建一数据库,字段名称分别为:id(字符),name(字符),user(数字)tt(日期),admin(权限代码,0-普通用户,1-管理员)
表名:online
header.ASP ↓
============================================================
<%
... ...
if session("s_in")<>1 and session("s_name")="" then '如果用户是第一次登陆
rs.open "select * from online",conn,3,3
rs.addnew
rs("id")=session.sessionID
rs("name")="游客" & session.sessionID
rs("user")=0 '0表示用户未登陆,是游客身份
rs("tt")=now
rs.update
rs.close
session("s_in")=1 '设置用户的资料已经存入数据库,表示已经在线
end if
if session("s_name")<>"" then '如果用户已经通过登录框登录
rs.open "select * from online where id='" & session.sessionID & "'",conn,3,3
rs("name")=session("s_name")
rs("admin")=session("s_admin") '将用户的姓名更新为会员名称
rs("user")=1 '表示用户已经登陆,是会员身份
rs("tt")=now '将当前系统时间设置为用户的登陆时间
rs.update
rs.close
end if
... ...
%>
... ...
<head>
... ...
<script language=javascript>
function Test()
{
var XMLhttp = new ActiveXObject("MSXML2.XMLHTTP");
XMLhttp.open("POST","onceonline.ASP",false); // 向onceonline.ASP发送更新请求
XMLhttp.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
XMLhttp.send();
}
setInterval("Test();",10); // 10秒钟发送一次更新请求
</script>
... ...
</head>
... ...
==========================================================
onceonline.ASP
<%
rs.open "select tt from online where id='" & session.sessionID & "'",conn,3,3
rs("tt")=now() '更新当前在线用户的在线时间
rs.update
rs.close
rs.open "delete from online where datediff('s',tt,now())>60",conn,3,1 '删除超时用户
%>图 文 结 合:http://www.qqread.com/asp/2006/10/c239456.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 数字化校园网解决方案 (5616篇文章)
- 网站服务器的选型 (8159篇文章)
- 大型实用解决方案专题 (5138篇文章)
- 应用解决方案 (5138篇文章)
- 中小型应用解决方案 (5138篇文章)
- 多媒体应用解决方案 (5897篇文章)
- 行业解决方案 (5138篇文章)
- 行业解决方案 (5138篇文章)
- 中小企业防病毒解决方案 (5982篇文章)
- 网站建设 (359篇文章)
- asp+ajax打造无刷新新闻评论系统 (846次浏览)
- 绝对免费顶级域名+免费500MB ASP?? (728次浏览)
- ASP后门之终极伪装 (601次浏览)
- FTP的安全问题 《转》 (589次浏览)
- 如何正确显示数据库中的图片 (503次浏览)
- 用户登录/注册程序——Flash+ASP (492次浏览)
- SQL注入漏洞全接触 (381次浏览)
- asp+sqlserver 分页方法(不用存储过程) (314次浏览)
- Windows操作系统出现死机故障的解决方法 (202次浏览)
- 对ASP 动态包含文件方法的改进 (152次浏览)



