0
我有一个使用GWT的网站,该网站使用Spring进行保护,超时时间为...假设一个小时。作为该过程的一部分,我试图在会话过期前5分钟实施客户端会话超时警告。如何在任何异步RPC调用时调用GWT方法
我已经为它写出了使用cookies的Javascript。定时器的工作原理是初始化定时器,并且有一个方法可以通过本地方法重置可以在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是对服务器进行,基于服务器的会话超时被刷新,所以最初的计时器不再使用任何类型的异步调用后准确。上面的函数会用正确的超时时间更新客户端。
绝对可行的选项是调用一个本机无效,它调用$wnd.resetSessionTimeout()
从每一种方法我有异步调用。然而,这是很多方法,并且可扩展性差,执行性差。
有没有办法让我设置客户端部分来观察每一个RPC已经被创建和接收,然后把原生的void放在MVP级别而不是每个方法,即是否存在RPC Observers或听众?
哇,我从来没有想过这样做。那么,重新连线一切,以覆盖执行,而不是onSuccess将需要一段时间,但这显着改善处理。谢谢!我认为另一种方法是在构造函数中调用更新,然后让onFailure重置计时器。 – Compass 2014-10-10 19:57:41