【发布时间】:2014-12-06 01:13:50
【问题描述】:
我有一个使用 GWT 的网站,该网站使用 Spring 保护,超时时间为……假设一个小时。作为该过程的一部分,我正在尝试在会话到期前 5 分钟实施客户端会话超时警告。
我已经为它编写了 Javascript,它使用了 cookie。定时器用于初始设置定时器,并且有一个可以通过原生方法在GWT中使用的复位定时器的方法。
function resetSessionTimeout() { //update the cookie for the expected timeout
var date = new Date();
var timeoutTime = 55 * 60 * 1000;
date.setTime(date.getTime() + timeoutTime);
createCookie('timeout', date.getTime(), 1);
}
每当对服务器进行 RPC 时,都会刷新基于服务器的会话超时,因此在使用任何类型的异步调用后初始计时器不再准确。上面的函数会用正确的超时时间更新客户端。
绝对可行的选项是调用一个原生 void,它从 我通过异步调用获得的每一个方法调用 $wnd.resetSessionTimeout()。但是,这种方法很多,扩展性差,实施起来也很糟糕。
有没有办法让我设置客户端部分来观察何时生成和接收 RPC,然后在 MVP 级别而不是在每个方法中放置本机 void,即是否有 RPC 观察者或侦听器?
【问题讨论】:
标签: java javascript gwt