首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎样在用户关闭页面的时候,改变数据库中用户的在线状态。(结贴很快)解决办法

2012-01-30 
怎样在用户关闭页面的时候,改变数据库中用户的在线状态。。(结贴很快)怎样在用户关闭页面的时候,改变数据库

怎样在用户关闭页面的时候,改变数据库中用户的在线状态。。(结贴很快)
怎样在用户关闭页面的时候,改变数据库中用户的在线状态?
用户离开页面原来的在线状态由1变为0了。。

[解决办法]
mark~~
那用户那断电怎么办?
[解决办法]
好象是在Global.asax文件中的protected void Session_End(Object sender, EventArgs e)方法中写对数据库的操作.
[解决办法]
1.登陆成功的时候在Global.asax新建一个全局的session,退出的时候在Global.asax的Session_End事件中写事件
2.在文件的Application_End事件中写事件
[解决办法]
用Application和Session,结合global.asax文件比较好解决。
抱谦的是:我现在还是个菜鸟,还没亲手实践做过。但基本思路应该是这样的。
[解决办法]
不好意思。我的帖子发出来的速度还是比他们慢了两分钟。
[解决办法]
1.登陆成功的时候在Global.asax新建一个全局的session,退出的时候在Global.asax的Session_End事件中写事件
2.在文件的Application_End事件中写事件

是真确的方法
[解决办法]
关键是关闭页面这个事件怎么判断呢?
[解决办法]
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码

}

void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。

}
[解决办法]
没那么及时,B/S不同C/S,在Session_End去改数据库
[解决办法]
结贴快也没办法很准确
[解决办法]
void Session_Start(object sender, EventArgs e)
{
// 在新会话启动时运行的代码

}

void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。

}

[解决办法]
如果想做的精确还是比较麻烦的~~~~~~~

楼主可以Google一下精确在线人数的做法
一般都是弄个隐藏的Iframe不停的刷
[解决办法]
上冇的方法是一种办法`~但如果是用户非法关闭~~那就要等到Session失效事才能进行操作,
function onunload()
{
//这里写改变数据库
}
这个方法也可以~~但也有一个问题~~就是当用户刷新时`~他也会进行操作`~
我想除了这两种方法,就没有其它好的方法了
[解决办法]
关注
[解决办法]
只能每隔一段时间刷新一次session 来判断是否在线,在网页里设置超时时间

[解决办法]
好像不能做的那么精确吧
不国如果是正常推出的话,应该可以在Application_End()内可以做的
[解决办法]
貌似没有什么万全的办法~ 总是存在一些问题
[解决办法]
<script language= "javascript " type= "text/javascript ">
<!--

window.onbeforeunload = function()//离开页面事件
{
//你要实现的代码
}
<script>
------解决方案--------------------


顶!
[解决办法]
没有万全方法。
[解决办法]
.
[解决办法]
路过

My-Blog地址1:http://www.cnblogs.com/nyzfl
My-Blog地址2: http://blog.csdn.net/nyzfl
[解决办法]
感觉相当复杂
如果同时打开几个页面,关闭一个的话怎么办
[解决办法]
window.onbeforeunload = function()//离开页面事件
{
//你要实现的代码
}
[解决办法]
学习
[解决办法]
mark
[解决办法]
用Application和Session,结合global.asax文件.
Application_start设置起始人数为0!
Session_end控制下线人数!
Session_statr控制上线人数!
[解决办法]
用js通知服务器吧。
[解决办法]

[解决办法]
用Application和Session,结合global.asax文件.
Application_start设置起始人数为0!
Session_end控制下线人数!
Session_statr控制上线人数!
=============
我顶你。。。
要Application和Session一起使用的。只用其中一个是不可能实现的。
Application是作用与所有对象的。因此可以做整站的流量统计,而Session是作用于单个对象的,因此可以用来控制某个人的上线或是下线的判断
[解决办法]
有点难度


欢迎访问 http://esdn.gnway.net(用户和密码:Test/123456) 测试我的系统!
MSN:fgmis@163.com QQ:704310140
[解决办法]
基本上很难
Session_End是Session超时触发的
楼主的意思是页面unload时候触发和Session_End应该用不到吧
页面的unload事件在页面非正常结束就不会触发鸟
[解决办法]
如果用户正常关闭,进入时,可以用SESSION记录在线,关闭时,那就可以用body 的 OnUnload 事件来触发(可以用到AJAX);
如果不是正常关闭,那只能用Session_End了。
[解决办法]
学习
[解决办法]


mark
[解决办法]

[解决办法]
当系统登陆时设置一个Session内置对象有效=1,把该内置对象写入数据库中某一字段。一般这样就可以了,只是用户下线后它仍能在内存中存一段。但你要在数据库中马上改变数据,可以在相应事件中将0写入数据库中相应字段,也可关闭该Session。
[解决办法]
用Application和Session,结合global.asax文件.
Application_start设置起始人数为0!
Session_end控制下线人数!
Session_statr控制上线人数!
=============
我顶你。。。
要Application和Session一起使用的。只用其中一个是不可能实现的。
Application是作用与所有对象的。因此可以做整站的流量统计,而Session是作用于单个对象的,因此可以用来控制某个人的上线或是下线的判断
----------------------------------------------------
这个方法我觉得更好。Application用来存储针对所有用户的信息,而Session则用来存储针对单个用户的信息。

[解决办法]
我们刚实现了这个效果。就是轮询了啊。每隔一段时间更新一下用户状态。如果长时间没有更新。表明他已经掉线或退出了
[解决办法]
这个问题很有意思
[解决办法]
学习
学习,
顶上去
等待完整的解决方案

热点排行