怎么判断用户的状态

qq_18988451 2015-01-27 03:39:07
在数据库中我设定了用户的一个状态,根据这个状态来判断用户是否登录了,但是 现在遇到的问题时,当用户退出时,更改这个登陆的状态,下面我设想了三种情况,不知道怎么更改用户的状态
1.用户关闭页面
2.用户关闭浏览器
3.用户在任务栏中结束进程

不知道 用代码怎么实现~
...全文
637 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_18988451 2015-01-28
  • 打赏
  • 举报
回复
引用 21 楼 sp1234 的回复:
[quote=引用 19 楼 qq_18988451 的回复:] [quote=引用 18 楼 Z65443344 的回复:] web的通信机制是基于http协议的 IE发送get或post请求,web服务返回html,js,css这些东西 什么Cookie Session都是用来保存会话状态的
说的是.NET运行机制么?[/quote] 唉。 web是“短连接”的机制,而不是“长连接”的机制。于是它判断离线,只有靠客户端发现系给服务器的间隔时间来判断。 比如说你的 aspx 页面需要每隔 30 秒钟以 ajax 形式访问一下某个 ashx,只要打个“招呼”就好(这就叫做心跳)。要是没有,谁知道用户(用同一个窗口)看的网页是不是本网站的网页啊?[/quote] 这个根据时间间隔判断用户是否离线,在哪里写比较合适?
qq_18988451 2015-01-28
  • 打赏
  • 举报
回复
引用 32 楼 Z65443344 的回复:
[quote=引用 30 楼 qq_18988451 的回复:] 怎么判断 客户端 “失踪”了多久?
用户表里加个字段: [最后一次心跳时间] 然后判断当前时间减去这个时间大于某个时间段就算是失踪了 比如你设置了30秒一个心跳,那么应该允许其中一次网络有问题发送失败,连续2次(也就是1分钟)还没连上,就当掉线了[/quote] 类似 http://bbs.csdn.net/topics/200056260 这个讨论的,但是没解决~
於黾 2015-01-28
  • 打赏
  • 举报
回复
看你的框架了 如果你只有一个主页面,其他页面都是iframe嵌入显示的,那么直接写主页面里也是可以的 否则当然是写在一个访问任何页面它都会执行的地方 难道还要在每个页面都来一遍,烦不烦
qq_18988451 2015-01-28
  • 打赏
  • 举报
回复
引用 32 楼 Z65443344 的回复:
[quote=引用 30 楼 qq_18988451 的回复:] 怎么判断 客户端 “失踪”了多久?
用户表里加个字段: [最后一次心跳时间] 然后判断当前时间减去这个时间大于某个时间段就算是失踪了 比如你设置了30秒一个心跳,那么应该允许其中一次网络有问题发送失败,连续2次(也就是1分钟)还没连上,就当掉线了[/quote] 我不知道这段代码写在哪里?Global.aspx 里面么?
xiaozhanger 2015-01-28
  • 打赏
  • 举报
回复
这个问题的讨论真不错, 很到位了 我也学习了
於黾 2015-01-28
  • 打赏
  • 举报
回复
引用 30 楼 qq_18988451 的回复:
怎么判断 客户端 “失踪”了多久?
用户表里加个字段: [最后一次心跳时间] 然后判断当前时间减去这个时间大于某个时间段就算是失踪了 比如你设置了30秒一个心跳,那么应该允许其中一次网络有问题发送失败,连续2次(也就是1分钟)还没连上,就当掉线了
於黾 2015-01-28
  • 打赏
  • 举报
回复
还拿跟女朋友发短信举例子 怎么知道对方正常,活着,没死,没睡着,没出车祸进医院,手机没关机,没停电,没欠费? 就是只要收到对方发来的短信,那就代表正常的,而不用去管发来的短信内容到底是啥
qq_18988451 2015-01-28
  • 打赏
  • 举报
回复
引用 28 楼 Z65443344 的回复:
合着我们说了那么多都白说了是吗 你还是非要求对方死了也从棺材里爬出来告诉你一声是吗 那如果不是死了是失踪呢? 法律规定如果失踪超过3年就可以判定死亡了,而不是一定要找到尸体 你这个也一样,应该判断客户端"失踪"了多久,而不是非要找到尸体
怎么判断 客户端 “失踪”了多久?
於黾 2015-01-28
  • 打赏
  • 举报
回复
你AJAX提交,后台代码不是去判断提交上来的是正常还是失败 而是只要接收到提交了,那保证就是正常的,就把当前时间写进数据库里去 收不到就是不正常
於黾 2015-01-28
  • 打赏
  • 举报
回复
合着我们说了那么多都白说了是吗 你还是非要求对方死了也从棺材里爬出来告诉你一声是吗 那如果不是死了是失踪呢? 法律规定如果失踪超过3年就可以判定死亡了,而不是一定要找到尸体 你这个也一样,应该判断客户端"失踪"了多久,而不是非要找到尸体
qq_18988451 2015-01-28
  • 打赏
  • 举报
回复
引用 26 楼 Z65443344 的回复:
不执行就对了 你页面根本就没给服务器发任何东西,服务器为什么要自己执行代码?? 好比你跟你女朋友商量好了互相发短信 每次都是你先发,你发一条,她回一条 你发出去了她没收到,她回啥呀
额 那怎么办,因为我数据库中 用户登录表中 有个字段state 时判断用户是否登录的,当登录的时候为1,退出的时候为0 。 现在 通过AJAX 心跳后,不执行代码,我数据库中的字段值,仍为1,下次登录的时候会有问题,我该怎么解决啊
於黾 2015-01-28
  • 打赏
  • 举报
回复
不执行就对了 你页面根本就没给服务器发任何东西,服务器为什么要自己执行代码?? 好比你跟你女朋友商量好了互相发短信 每次都是你先发,你发一条,她回一条 你发出去了她没收到,她回啥呀
qq_18988451 2015-01-28
  • 打赏
  • 举报
回复
引用 24 楼 Z65443344 的回复:
说白了,长连接就是打电话,短连接就是发短信 你不定期给你女朋友发个短信,那谁知道你到底是手机忘带了还是手机没电了还是出车祸了还是怎么了
我是用的AJAX 不断的给后台发送数据,但是 断网后,后台写的判断 reqerst["data"]==null 里面的方法不执行
於黾 2015-01-28
  • 打赏
  • 举报
回复
说白了,长连接就是打电话,短连接就是发短信 你不定期给你女朋友发个短信,那谁知道你到底是手机忘带了还是手机没电了还是出车祸了还是怎么了
skullsuns 2015-01-28
  • 打赏
  • 举报
回复
什么是AZURE活动贴
  • 打赏
  • 举报
回复
引用 19 楼 qq_18988451 的回复:
[quote=引用 18 楼 Z65443344 的回复:] web的通信机制是基于http协议的 IE发送get或post请求,web服务返回html,js,css这些东西 什么Cookie Session都是用来保存会话状态的
说的是.NET运行机制么?[/quote] 唉。 web是“短连接”的机制,而不是“长连接”的机制。于是它判断离线,只有靠客户端发现系给服务器的间隔时间来判断。 比如说你的 aspx 页面需要每隔 30 秒钟以 ajax 形式访问一下某个 ashx,只要打个“招呼”就好(这就叫做心跳)。要是没有,谁知道用户(用同一个窗口)看的网页是不是本网站的网页啊?
於黾 2015-01-27
  • 打赏
  • 举报
回复
跟.net无关 不基于.net难道就不能发布网站了? .net发明之前网站都是拿什么做的
qq_18988451 2015-01-27
  • 打赏
  • 举报
回复
引用 18 楼 Z65443344 的回复:
web的通信机制是基于http协议的 IE发送get或post请求,web服务返回html,js,css这些东西 什么Cookie Session都是用来保存会话状态的
说的是.NET运行机制么?
於黾 2015-01-27
  • 打赏
  • 举报
回复
web的通信机制是基于http协议的 IE发送get或post请求,web服务返回html,js,css这些东西 什么Cookie Session都是用来保存会话状态的
於黾 2015-01-27
  • 打赏
  • 举报
回复
引用 16 楼 qq_18988451 的回复:
不是Cookie Session 这些会话机制么?
所谓会话机制,那是服务端的事情 你在了解服务端用什么机制之前,应该先了解通信机制
加载更多回复(16)

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧