asp.net 当用户关闭浏览器或访问其他页面时,如何执行方法?

bz4sfanl  于 2023-06-25  发布在  .NET
关注(0)|答案(4)|浏览(142)

我使用c#asp.net 4 web.forms。
我有一个页面(我们称之为X),我需要在X上执行一个方法,只有在这种情况下:

  • 当用户访问另一个URL时,直接在浏览器中输入或单击页面上的另一个链接。
  • 当用户从我的Web应用程序注销时。
  • 当用户关闭浏览器时。

目前,我正在尝试Page_Unload Event,但对于MSDN“发生时,服务器控制从内存中卸载”,我无法使其按预期工作。
在文档中查找 * 我找不到适合我的页面的事件 *。
可能的替代解决方案是什么?谢谢你的时间。

kjthegm6

kjthegm61#

这根本不可能。
HTTP要求浏览器首先从服务器请求资源-没有这个服务器就不能做任何事情。关闭浏览器不会向服务器请求任何内容。
您唯一的选择是使用会话cookie,当用户结束浏览器会话时,这些cookie将被清除,如MSDN
当用户关闭浏览器时,cookie将被丢弃。
因此,在每个请求中检查这些内容将允许服务器知道用户之前是否关闭了浏览器。
有一些令人讨厌的JavaScript解决方案,但这些都是非常黑客的。

wydwbb8l

wydwbb8l2#

看一下JavaScript窗口。OnBeforeUnload处理程序:
How can I override the OnBeforeUnload dialog and replace it with my own?
这样你就可以在用户离开你的页面之前执行一些JavaScript。

lokaqttq

lokaqttq3#

  • 当用户访问另一个网址时,直接在浏览器中输入或点击页面上的另一个链接

你可以做一些客户端脚本。JavaScript onbeforeunload Event可以帮助你。

  • 当用户从我的Web应用程序注销时。

我不明白这有什么问题。这肯定是一个服务器端事件,不是吗?

  • 当用户关闭浏览器时

那是个问题。停电时该怎么办?或者浏览器崩溃或者...

ffscu2ro

ffscu2ro4#

您始终可以使用builder.Services.AddHostedService<YourBackgroundService>在后台运行作业

相关问题