• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP > asp实现一个统计当前在线用户的解决方案

asp实现一个统计当前在线用户的解决方案

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了asp实现用户注册,asp多用户商城,asp用户登录代码,asp多用户商城系统,asp多用户商城系等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
一个统计当前在线用户的解决方案

在做一个在线交流的网站时,有个问题很令我头疼,就是关于实时统计在线用户的问题,客户要求:统计当前在线人数、游客人数、会员人数、在线用户列表,包括游客、会员和管理员(如果是游客,则自动生成游客的ID,如果是会员,则显示会员姓名)。因为它要求有实时性,则首先我将用global.asa解决的想法pass掉。

问题的关键是如何判断用户已经离开,和当用户离开时如何执行一个文件或一个函数。

经过和网上一些朋友的探讨,终于解决了这个问题。

解决的原理为:编写一个通用页面,所谓的通用页面,就是应用里的每个页面都包含这个页面,例如: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 '删除超时用户
%>

==============================================================

这样,基本保证了数据库中用户列表的实时性,误差取决于更新时间和删除时间的差值大小和服务器的处理速度,建议不要将删除超时用户的时间间隔取的过于小,那样有可能会导致在线用户0人的失误。

本方案在WIN2000+SQL Server2000上调试通过,由于本方案对系统要求比较大,期待其他朋友拿出更好的方案,一起解决这个问题!
</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • asp实现限制一个ip只能访问一次的方法
  • asp实现检查ip地址是否为内网或者私有ip地址的代码分享
  • asp实现本周的一周时间列表的代码
  • asp实现的可以提醒生日的几种方法附代码
  • ASP 无限级分类实现
  • asp实现一个统计当前在线用户的解决方案
  • ASP实现头像图像随机变换
  • 用ASP实现对MP3曲目信息的操作
  • ASP智能搜索的实现

相关文章

  • 2017-05-11asp 判断上传文件中是否存在危险代码
  • 2017-05-11使用FSO把文本信息导入数据库
  • 2017-05-11打包上传asp网站
  • 2017-05-11asp伪静态情况下实现的utf-8文件缓存实现代码
  • 2017-05-11asp数组使用(2)
  • 2017-05-11asp自动补全html标签自动闭合(正则表达式)
  • 2017-05-11kesion科讯V4.0管理员Key工具
  • 2017-05-11支持权重的无组件ASP广告显示代码
  • 2017-05-11在Vista IIS 7 中用 vs2005 调试 Web 项目的注意事项
  • 2017-05-11Highlight patterns within strings

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp短信接口源码 比较简单但也挺实用用的(两个写法)
    • pjblog2的参数第1/2页
    • ASP实现类似hashMap功能的类
    • asp 正则实现清除html文本格式的函数代码
    • 一个带采集远程文章内容,保存图片,生成文件等完整的采集功能
    • 静态页面利用JS读取cookies记住用户信息
    • IIS7.5调用asp页面出现800a0e7a的解决办法
    • 改进性能和样式的 24个 ASP 技巧第1/2页
    • Asp函数介紹(37个常用函数)第1/2页
    • asp 过滤尖括号内所有内容的正则代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有