如何触发任何 Action ,当 session [ 1 ] 在特定时间(例如:10 分钟)处于空闲状态。
我正在使用 Grails 做一个 Web 应用程序。如果系统空闲了一段时间,我需要持有一些特定的任务。系统空闲时是否可以触发任何操作?
注:我不是在问 session 超时。默认情况下,如果 session 空闲 30 分钟,它应该注销。
[ 1 ] : 这里的session在sense System中。我的 Web 应用程序托管在一台服务器上,许多用户可以访问该应用程序。如果某个用户的系统空闲了一段时间,那么我需要保留该特定用户的任务。我怎样才能做到这一点?
最佳答案
根据 HTTP 请求-响应模式的性质,您无法根据用户(非)交互触发任何服务器端任务。
您可以使用 JavaScript 在客户端“观看”用户 session ,并在客户端和/或服务器端触发任何任务。我用过jQuery idleTimer检测用户是否处于事件状态。
使用此插件,您可以绑定(bind)到多个事件以检测用户的空闲和重新激活。如果触发了空闲事件,您可以执行 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
});
});
希望有帮助!
关于Grails:如果 session 有时空闲,则触发任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12454740/