我使用c#asp.net 4 web.forms。我有一个页面(我们称之为X),我需要在X上执行一个方法,只有在这种情况下:
目前,我正在尝试Page_Unload Event,但对于MSDN“发生时,服务器控制从内存中卸载”,我无法使其按预期工作。在文档中查找 * 我找不到适合我的页面的事件 *。可能的替代解决方案是什么?谢谢你的时间。
Page_Unload Event
kjthegm61#
这根本不可能。HTTP要求浏览器首先从服务器请求资源-没有这个服务器就不能做任何事情。关闭浏览器不会向服务器请求任何内容。您唯一的选择是使用会话cookie,当用户结束浏览器会话时,这些cookie将被清除,如MSDN:当用户关闭浏览器时,cookie将被丢弃。因此,在每个请求中检查这些内容将允许服务器知道用户之前是否关闭了浏览器。有一些令人讨厌的JavaScript解决方案,但这些都是非常黑客的。
wydwbb8l2#
看一下JavaScript窗口。OnBeforeUnload处理程序:How can I override the OnBeforeUnload dialog and replace it with my own?这样你就可以在用户离开你的页面之前执行一些JavaScript。
lokaqttq3#
你可以做一些客户端脚本。JavaScript onbeforeunload Event可以帮助你。
我不明白这有什么问题。这肯定是一个服务器端事件,不是吗?
那是个问题。停电时该怎么办?或者浏览器崩溃或者...
ffscu2ro4#
您始终可以使用builder.Services.AddHostedService<YourBackgroundService>在后台运行作业
builder.Services.AddHostedService<YourBackgroundService>
4条答案
按热度按时间kjthegm61#
这根本不可能。
HTTP要求浏览器首先从服务器请求资源-没有这个服务器就不能做任何事情。关闭浏览器不会向服务器请求任何内容。
您唯一的选择是使用会话cookie,当用户结束浏览器会话时,这些cookie将被清除,如MSDN:
当用户关闭浏览器时,cookie将被丢弃。
因此,在每个请求中检查这些内容将允许服务器知道用户之前是否关闭了浏览器。
有一些令人讨厌的JavaScript解决方案,但这些都是非常黑客的。
wydwbb8l2#
看一下JavaScript窗口。OnBeforeUnload处理程序:
How can I override the OnBeforeUnload dialog and replace it with my own?
这样你就可以在用户离开你的页面之前执行一些JavaScript。
lokaqttq3#
你可以做一些客户端脚本。JavaScript onbeforeunload Event可以帮助你。
我不明白这有什么问题。这肯定是一个服务器端事件,不是吗?
那是个问题。停电时该怎么办?或者浏览器崩溃或者...
ffscu2ro4#
您始终可以使用
builder.Services.AddHostedService<YourBackgroundService>
在后台运行作业