关闭Asp.net页面时执行一些代码

时间:2015-01-02 08:08:56

标签: asp.net vb.net events ashx

当用户关闭.aspx页面时,我想删除数据库表中的一行。我怎么能这样做?我知道如何删除数据库表中的行但我不知道当用户离开.aspx页面时该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以将ajax调用绑定到“beforeunload”页面html事件。只需确保使用async false调用ajax,否则页面将在删除实际运行的行的代码之前关闭。我假设您正在使用jQuery进行ajax调用。

例如,在html中:

<body onbeforeunload="runCode();">

YOUR HTML....

<script type="text/javascript">
function runCode() {
    $.ajax({
        url: 'YourCode.ashx',
        async: false,
        success: function(data) {
            //Do other things before navigating to other page or closing the browser
        }
    });
}
</script>
</body>

名为YourCode.ashx的文件将包含删除数据库行的代码,或者您想要执行的任何其他操作。这样,即使用户关闭浏览器,代码也会运行。请注意,如果YourCode.ashx中的代码存在问题,则异步错误调用可以锁定您的页面。