我正在使用GWT-ext應用程序。 在這個應用程序中,我管理客戶端會話。爲此我寫下面的代碼:gwt中的會話管理
管理會話: import com.google.gwt.user.client.Timer;
public class ClientTimers {
private static final Timer SESSION_MAY_HAVE_EXPIRED_TIMER = new Timer() {
@Override
public void run() {
// Warn the user, that the session may have expired.
// You could then show a login dialog, etc...
}
};
public static void renewSessionTimer() {
// First cancel the previous timer
SESSION_MAY_HAVE_EXPIRED_TIMER.cancel();
// Schedule again in 5 minutes (maybe make that configurable?)
// Actually, let's subtract 10 seconds from that, because our timer
// won't be synchronized perfectly with the server's timer.
SESSION_MAY_HAVE_EXPIRED_TIMER.schedule(5 * 60 * 1000 - 10000);
}
}
要獲取用戶活動:
Ext.get("pagePanel").addListener("click", new EventCallback() {
@Override
public void execute(EventObject e) {
//MessageBox.alert("On Mouse Click");
});
Ext.get("pagePanel").addListener("keydown", new EventCallback() {
@Override
public void execute(EventObject e) { //
//MessageBox.alert("On Key Press Click");
}
});
此代碼工作正常,但我的問題: 此代碼將做自動的時間登出了occurs.For我的代碼我想上點擊或鍵入它應該註銷。情況是這樣的:如果用戶登錄並且註銷時間是5分鐘。用戶不按照上述代碼在屏幕上執行任何活動,它將在5分鐘完成時自動註銷。
現在我的要求是,如果用戶登錄,它不會做任何事情5分鐘。它不應該做任何註銷自動。而不是完成5分鐘註銷,如果用戶請點擊或鍵下降6分鐘,然後它應該做註銷過程。
基本上,作爲計時器超過指定時間的註銷過程應該在用戶活動上完成,而不是自動完成。