mvc3检测网站(应用程序)正在关闭



我正在用mvc3构建一个网站,只有在应用程序关闭时,我才需要删除数据库中的数据。(用户单击红色的x)。

我尝试使用onbeforeunload事件使用javascript,但每次进入应用程序中的新页面时都会发生此事件。

是否可以检测用户何时关闭窗口?

这是不可能的。但是,您可以使用一个小的javascript块,它将每隔n分钟/秒进行一次ajax调用,告诉服务器用户仍然打开浏览器。

通过这种方式,您可以设置一个超时,如果5分钟后我们没有收到用户的消息,我们可以删除数据库中的数据(或者您需要做的任何操作)。

要实现超时逻辑,有两个选项:

  1. 您有一个单独的服务(控制台应用程序或windows服务)在某个时间间隔运行,检查是否有任何用户的超时值大于某个值。如果是,那么执行您需要的任何操作。

  2. 如果任何用户执行的操作本应被阻止,则首先检查是否有任何用户仍处于活动状态(超时值大于当前时间)。如果存在,则阻止用户;如果没有,则可以删除旧的超时值,因为它已过期。

在window.unload事件中使用同步ajax请求。

当用户转到其他页面、关闭或刷新时,将触发此事件。你可以调用你的网络应用程序上的服务,通知它用户不再编辑文档

经过很快的谷歌搜索,我在这里看到了这个片段

$(window).unload(function() {
    $.ajax({
        url: 'resetTheDocument?id=whatever',
        async: false,
        cache: false,
        type: "POST",
        data: "My work here is done"
    });
});

早上好,您可以尝试在Session_End方法中将逻辑添加到global.asax文件中,以删除数据库中的记录。

相关内容

最新更新