在关闭IE时执行事件,代码应该怎么写?

ff167 2005-12-09 09:14:33
写了个东西,防止用户重复登陆.用时间来判断活动状况.如果20分钟不活动则在数据库里删除,这时才可以再登陆.

问题时,如果用户刷新了页面(向数据库里更新活动记录),然后马上关闭IE,也要等20分钟才能登陆,不合理(特别是那些人估计不怎么会用电脑,应该不会去按已经设置好的"退出"键)

所以我想在IE关闭时自动执行操作,事件应该怎么写呢?谢谢
...全文
121 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gavinapple 2005-12-30
  • 打赏
  • 举报
回复
是啊,这个问题我也想了好久,用onunload之类的刷新的时候也会执行
ff167 2005-12-09
  • 打赏
  • 举报
回复
thanks swordragon(古道热肠)

我刚测试了一下,似乎没反映,不知道是不是我的操作不对.

我将JS放在text.html里,将load放在XMLHttpServer.aspx里,里面的内容是向数据库内插入一段数据.

本机测试时,关闭IE后,没执行操作.

谢谢
swordragon 2005-12-09
  • 打赏
  • 举报
回复
你试试吧,或许可以实现的。

客户端:
<body onunload="Test()">
<script language="javascript">
function Test(objSrc,objDes)
{
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = new XMLHttpRequest();
}

xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var data = xmlHttp.responseText;
document.getElementById(objDes).value = data;
}
}
}

xmlHttp.open("post","XMLHttpServer.aspx" + objSrc.value);
xmlHttp.send(null);
}
</script>

服务器端:
private void Page_Load(object sender, System.EventArgs e)
{
//执行你的操作!!!
}
ff167 2005-12-09
  • 打赏
  • 举报
回复
用unload或者是onbeforeunload,只能打开新页面,不能在旧页面进行处理.

这样的话,恐怕SESSION也会找不到,确认不了用户名,如果直接传过去的话,安全性又低了.

shalen520 2005-12-09
  • 打赏
  • 举报
回复
这个问题,没有特别好的解决办法

试试body的onBeforeUnload,在这个事件中用脚本打开注销页面
zhangfire 2005-12-09
  • 打赏
  • 举报
回复
在onunload的时候,实现回调。
ff167 2005-12-09
  • 打赏
  • 举报
回复
onunload一类有问题,刷新也是unload,所以一刷新就弹出来

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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