客户端定时向服务器报告在线信息并在服务器端登记.可用xmlhttp实现
不过实现起来有点复杂...
先用 javascript 写 xmlhttp
// JScript 文件
//用xmlhttp请求RefreshTime.aspx页
function TimeOut()
{
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.5.0");
//异步方式获取数据
xmlhttp.open("POST","RefreshTime.aspx",true);
//这里 RefreshTime.aspx 是请求的页面 你要自己建立
xmlhttp.onreadystatechange=add;
function add()
{
if(xmlhttp.readyState==4)
{
}
}
xmlhttp.send(null);
}
//定时调用 每30秒就调用 RefreshTime.aspx 页面
window.setInterval("TimeOut()",30000);
下面是 RefreshTime.aspx 页面
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Xml;
public partial class RefreshTime : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ModifyMenu();
}
//更新xml数据库
public void ModifyMenu()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("~/XML/Menu.xml"));
//获取Menu节点的所有子节点
XmlNodeList xmlList = xmlDoc.SelectSingleNode("NewDataSet").ChildNodes;
XmlNodeList xmlListTime = xmlDoc.GetElementsByTagName("RefreshTime");
//更新登陆用户的单个时间 Session["name"]
xmlDoc.SelectSingleNode("//Table[UserID='" + Session["UserID"].ToString() + "']").ChildNodes.Item(7).InnerText = DateTime.Now.ToString();
//这里DateTime.Now 是更新xml的用户时间拉.
xmlDoc.Save(Server.MapPath("~/XML/Menu.xml"));
}
}
因为是每 30秒就刷新一次所以最好不用sql数据库拉费资源.用XML
如果不更新的话就证明用户已经关闭IE和关机走人了.
在建立个online.aspx 页面判断 他是否走人没
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Xml;
public partial class online : System.Web.UI.Page
{
//页面初始化事件
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DeleteMenu();
}
}
//删除xml
public void DeleteMenu()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("~/XML/Menu.xml"));
////获取Menu节点的所有子节点
XmlNodeList xmlList = xmlDoc.SelectSingleNode("NewDataSet").ChildNodes;
//获取每个纪录的活动时间 RefreshTime的节点
XmlNodeList node = xmlDoc.GetElementsByTagName("RefreshTime");
XmlNodeList nodeUserID = xmlDoc.GetElementsByTagName("UserID");
//统计RefreshTime节点的数量
int a = node.Count - 1;
for (int i = a; i >= 0; i--)
{
//如果活动时间没有刷新 并超过2分 就执行删除 node[i].InnerText是活动时间的字符串值
if (Convert.ToDateTime(node[i].InnerText.ToString()) < DateTime.Now.AddMinutes(0 - 2))
{
Response.Write(nodeUserID[i].InnerText.ToString() + "用户走人了");
//删除[xml数据库]相应的数据
xmlList[i].RemoveAll();
}
}
//保存xml文档
xmlDoc.Save(Server.MapPath("~/XML/Menu.xml"));
}
//刷新事件
protected void btn_Click(object sender, EventArgs e)
{
DeleteMenu();
}
}
你在就建立 xml数据就ok了..
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Table>
<UserID>22003</UserID> 用户id
<UserName>总经办内务</UserName>用户名
<DeptName>总经理办公室</DeptName>所在部门
<PlatForm>WinNT</PlatForm>平台
<BrowseType>IE6</BrowseType>浏览器
<IPAddress>192.168.168.120</IPAddress>ip
<StartTime>2006-11-15T12:35:00+08:00</StartTime>登陆时间
<RefreshTime>2006-11-15T12:35:00+08:00</RefreshTime>刷新时间这个看好就刷新这个了这个不刷新了就代表走人了
<OnlineTime>0分钟</OnlineTime>在线多长时间了
</Table>
<Table>
<UserID>22004</UserID>
<UserName>财务测试一</UserName>
<DeptName>财务部</DeptName>
<PlatForm>WinNT</PlatForm>
<BrowseType>IE6</BrowseType>
<IPAddress>192.168.168.120</IPAddress>
<StartTime>2006-11-15T12:36:00+08:00</StartTime>
<RefreshTime>2006-11-15T12:38:00+08:00</RefreshTime>
<OnlineTime>2分钟</OnlineTime>
</Table>
</NewDataSet>
相关推荐
标题中的“csdn文章转换为markdown格式”指的是一个自编的小程序,它可以便捷地抓取csdn网站上的文章内容,并将其格式化为Markdown语言。对于经常在csdn上阅读和学习的用户来说,这个工具能帮助他们更方便地整理和...
标题中的“C#编写CSDN博客导出工具”指的是使用C#编程语言开发的一款软件应用,该应用专为CSDN(China Software Developer Network)博客用户设计,目的是将CSDN博客的内容导出为Markdown格式的文档。Markdown是一种...
CSDN积分获取方法
当你在CSDN上发布原创文章,并得到其他用户的关注和推荐时,相应的积分就会增加。文章的质量、创新性和专业性往往是评价和奖励积分的重要因素。 再者,参与社区互动也是赚取积分的途径之一。在CSDN社区中,你可以...
CSDN博客导出工具是一款专门针对CSDN平台的实用软件,它的主要功能是帮助用户将个人在CSDN上发表的博客文章批量导出为Markdown或PDF格式。这样的工具对于博主而言非常有价值,因为它提供了备份和整理博客内容的便捷...
CSDN Share 是一款出色的Android阅读工具,阅读由 CSDN社区用户分享的技术文档。 通过CSDN Share可以在线阅读或离线下载CSDN 举办的各类技术活动的精彩讲义,以及来自CSDN下载社区由用户分享的技术文档。 马上下载...
总的来说,"CSDN 表情" 压缩包涉及到的IT知识点包括但不限于:网络社区的互动文化、文件压缩与解压缩、图像文件格式(JPEG、PNG、GIF)、在线社区的资源使用方法等。这些知识对于日常参与网络交流和技术分享的IT从业...
CSDN博客导出工具就是利用这种特性,帮助用户将博客内容转换为Markdown,使得内容在其他支持Markdown的平台上也能保持良好的排版和阅读体验。 使用C#编程语言开发的这个工具,体现了C#在处理文本和文件操作方面的...
可以获取不是vip的文章内容并保存下来,没有侧面的广告,适合保存下来后再ipad,手机中学习。方便了日常的学习生产,有BUG可以留言,到时候改进一下。
为了提供更便捷的阅读体验,开发者利用jQuery和Ajax技术打造了一个简洁版的CSDN论坛,通过优化页面加载和交互方式,使得用户在浏览时能够更加高效地获取信息。 首先,jQuery是一个强大的JavaScript库,它简化了DOM...
【CSDN新贴自动提醒】程序是一款专为CSDN论坛用户设计的工具,它能够实时监控并通知用户关于CSDN论坛上的新帖子,帮助用户及时获取最新的技术资讯和讨论热点。这款程序整合了多种关键技术,如本机外网IP获取和PB窗口...
【CSDN app】是一个基于Android平台的应用程序,主要用于浏览和互动CSDN(China Software Developer Network)上的博客和技术文章。这个应用集成了多种功能,包括但不限于阅读、搜索、评论和分享,旨在方便开发者们...
在IT行业中,CSDN(China Software Developer Network)是一个知名的技术交流平台,为开发者们提供了大量的技术资源和学习资料。为了鼓励用户积极参与社区建设,CSDN实施了一套积分系统,用户可以通过各种方式获取...
- **主题定位**:“csdn移动电子月刊第一期”的主题聚焦于移动应用的成功之道,旨在探讨移动开发领域的创优和创富策略。 - **内容概览**:本期月刊精选了12篇高质量文章,涉及移动应用开发的多个方面,如《植物大战...
这是一个小软件可以方便导出csdn博客或者其他网址为docx格式文档,十分方便。软件工具免费使用,一天可以免费转换一次效果还可以,只支持windows系统,如果失效可以联系作者。注意由于软件加壳部分杀毒软件可能存在...
MarkdownPad是一款专为博客作者和内容创作者设计的强大编辑器,尤其针对CSDN(China Software Developer Network)用户,它提供了一种离线编辑博客文章的高效解决方案。这款工具以其对Markdown语言的良好支持而受到...
标题中的"CSDN中发帖时所用到的编辑器"指的是CSDN(China Software Developer Network)社区在用户发布技术文章或问题时使用的文本编辑工具。这个编辑器旨在帮助用户方便地编写和格式化代码,同时提供语法高亮功能,...
它的主要功能是屏蔽CSDN网站上的各类广告,为用户创造一个清爽、无干扰的阅读环境。在浏览技术文章或学习编程知识时,广告往往会分散注意力,降低工作效率。adBlock for CSDN的出现,旨在改善这一状况,让开发者更加...