如何使用.ashx文件在用户关闭网页时执行某些代码

时间:2015-01-02 13:42:52

标签: jquery html asp.net vb.net ashx

我想在用户关闭网页时执行一些vb.net代码。我该怎么办。我有这个但我不知道如何使用它。我已经在某处看到过波纹管指示但是我不能使用它:

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

例如,在html中:

<body onbeforeunload="runCode();">

您的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中的代码存在问题,则异步错误调用可以锁定您的页面。

1 个答案:

答案 0 :(得分:0)

由于您使用的是 jQuery ,因此可以使用unload event。确保包含jQuery。

仅供参考: 如果您使用jQuery卸载事件,请从正文标记中删除onbeforeunload="runCode();"

<body>
    <form id="form1" runat="server">
        This is content.

        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
        </script>
        <script type="text/javascript">
            $(window).unload(function () {
                $.ajax({
                    url: 'YourCode.ashx',
                    async: false,
                    success: function (data) {
                        // Do other things before navigating 
                        // to other page or closing the browser
                    }
                });
            });
        </script>
    </form>
</body>