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

The*_*aye 2 window asp.net-mvc-3

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

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

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

Les*_*ter 6

这是不可能的.但是,你可以做的是有一个小的javascript块,它会每n分钟/秒进行一次ajax调用,告诉服务器用户仍然打开浏览器.

这样,您可以设置一个超时,表示如果在5分钟后我们没有收到用户的消息,我们可以删除数据库中的数据(或者您需要执行的任何操作).

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

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

  2. 如果任何用户执行了一个已被阻止的操作,您首先要检查是否有任何用户仍将其激活(超时值大于当前时间).如果有,则阻止用户,如果没有,则可以删除旧的超时值,因为它已过期.