在onbeforeunload中注销用户并将日志发送到服务器

logout user in onbeforeunload and send log to server

本文关键字:日志 服务器 onbeforeunload 注销 用户      更新时间:2023-09-26

我正在运行一个silverlight web应用程序,我想登录用户退出,如果他关闭浏览器,更改网站等,以防他们忘记点击退出按钮,我想在承载silverlight的网页上做到这一点。

我试着按照教程:添加webservice。HTC和调用web服务使用javascript,看起来像这样

html正文标签:

<body id="service" style="behavior:url(webservice.htc)">

脚本:

window.onbeforeunload = function(){
   // set web service
   service.useService(
   "https://myhost/myService/service.svc?wsdl",
   "myService");
   // call web service method
   service.myService.callService("LogInUser", -1);
}

onbeforeunload会被调用如果我只是想显示像

这样的消息
return "onbeforeunload called!";

编辑:我的web服务是在SOAP中,并希望在使用javascript或在我的ASP.net 3.5托管silverlight中的其他选项中消费,并且应该在IE8+中查看。有什么选项可以完成这个任务吗?

我不熟悉您展示的方法,但我假设文档只是在web服务中发生任何事情之前被卸载。

我所知道的唯一跨浏览器的方法是进行同步Ajax调用。这里有更多信息,或者在jQuery中使用async: false标志。

我不确定这是不是一个好主意。例如,用户可能在不同的浏览器窗口中打开了相同的会话。使用您的方法,关闭其中一个将注销它们。此外,如果网络出现故障,同步Ajax请求可能会冻结浏览器。