在浏览器关闭时,JavaScript并不总是调用自定义的服务器端方法(Asp.Net/C#)

On browser close, JavaScript does not always call a custom server side method (Asp.Net/C#)

本文关键字:方法 服务器端 自定义 Asp Net 调用 浏览器 JavaScript      更新时间:2023-09-26

在浏览器关闭事件中,我试图从JavaScript调用一个服务器端方法,以更改一些数据库表。我在JavaScript中的"onbeforeunload"事件中执行此操作。

大多数时候,它成功地调用了服务器端代码,并实现了预期的数据库表更改*但有时不会调用服务器端事件*

是否有人有类似需求的经验,或者能够为我们提供如何确保服务器端事件始终被调用的建议?

Aha,不久前我们遇到了其中一个问题,我们绝对需要向服务器通知窗口已经关闭。我们注意到只有Firefox会服从onbeforeunload内部的请求。最后,解决方案如下:

$(window).unload(function () {
    $.ajax ({
        url: "...",
        data: "(what you want to send)",
        async: false                             // THIS
    });
});

更奇怪的是,window.onunloadwindow.onbeforeunload都不适用于我们;至少在当时不会。

相关文章: