2

当会话[ 1 ]空闲特定时间(例如:10 分钟)时,如何触发任何操作。

我正在使用 Grails 做一个 Web 应用程序。如果系统空闲了一段时间,我需要持有一些特定的任务。系统空闲时是否可以触发任何操作?

注意:我不是在询问会话超时。默认情况下,如果会话空闲 30 分钟,它应该注销。

[ 1 ] : 这里是感觉系统中的会话。我的 Web 应用程序托管在一台服务器上,许多用户可以访问该应用程序。如果某个用户的系统空闲了一段时间,那么我需要保留该特定用户的任务。我怎样才能做到这一点?

4

1 回答 1

1

根据 HTTP 请求-响应模式的性质,您无法根据用户(非)交互触发任何服务器端任务。

您可以使用 JavaScript 在客户端“观看”用户会话,并在客户端和/或服务器端触发任何任务。我使用jQuery idleTimer来检测用户是否处于活动状态。

使用此插件,您可以绑定到多个事件以检测用户的空闲和重新激活。如果触发了空闲事件,您可以执行 AJAX 调用来触发任何服务器端任务,如下所示:

$.idleTimer(10000);

$(document).bind("idle.idleTimer", function(){
    // function you want to fire when the user goes idle (e.g. do an AJAX call)

    $.post('${yourActionURL}', function(data) {
        // handle response
    });
});

希望有帮助!

于 2012-09-17T07:47:00.993 回答