我想在用户关闭页面后从服务器上删除一个临时文件(我假设默认情况下我在服务器上没有这个回调),
当用户关闭页面时,我尝试使用(ICallbackEventHandler
实现)调用服务器端方法,但问题是在这种情况下(关闭页面)服务器端方法不会触发), 它只在页面仍然打开时响应。并且我不希望在服务器响应之前停止关闭页面并将其发送回手动关闭页面。
如果我必须停止关闭页面,请以最好的方式帮助我。
提前致谢
最佳答案
您无法真正知道用户何时关闭页面。
最好的办法是使用 JS onunload
事件并在其中发送 AJAX 请求:
<body onunload="SendRequest();">
还有 JavaScript:(jQuery 是最简单的方法)
function SendRequest()
{
var sURL = "http://localhost/Log.aspx?action=unload&t=" + (new Date()).getTime();
$.ajax({ url: sURL });
}
每当用户离开页面时都会触发此事件:F5、后退、前进、单击链接、提交表单等...您可以改进代码以忽略某些情况,例如单击页面中的某些内容让我知道如果相关,我将使用适当的代码进行编辑。
关于javascript - 用户关闭页面时如何调用服务器方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4594396/