1

gwtp フレームワークで gwt 2.3 を使用しています。このアプリケーションでは、セッション時間を 5 分間維持したいと考えています。これは、現在のユーザーが最大 5 分間実行しておらず、5 分後に画面上の最初のイベント/アクションに到達した場合を意味します。 a ログアウトする必要があります。gwt には、この問題で使用できる Timer という名前のクラスがあります。しかし、画面上のユーザーのアクションを認識する方法がわかりません。Google で検索したところ、gwt-ext のコードが見つかりました。 gwt-ext

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”);
    }
});

上記のコードタグでは適切に機能しているため、このコードを取得した場所からのリンクを添付しています。ここ

gwt で探しているのと同じタイプのコードです。他にこれを行うためのより良い方法がある場合は、お知らせください。前もって感謝します

4

1 に答える 1

3

アクション/イベントが本当にすべてである場合 NativePreviewHandler、次の方法で解決します。

boolean expired;

final Timer logoutTimer = new Timer() {
    @Override
    public void run() {
        expired = true;
    }
};

NativePreviewHandler nph = new NativePreviewHandler() {

    @Override
    public void onPreviewNativeEvent(NativePreviewEvent event) {
        if (!expired) {
            logoutTimer.cancel();
            logoutTimer.schedule(300000);
        } else {
            // do your logout stuff here
        }
    }
};

Event.addNativePreviewHandler(nph);

ユーザー シェルが 5 分後に新しいアクションなしでログアウトされた場合:

final Timer logoutTimer = new Timer() {
    @Override
    public void run() {
        // do your logout stuff here
    }
};

NativePreviewHandler nph = new NativePreviewHandler() {

    @Override
    public void onPreviewNativeEvent(NativePreviewEvent event) {
        // Of course do this only when logged in:
        logoutTimer.cancel();
        logoutTimer.schedule(300000);
    }
};

Event.addNativePreviewHandler(nph);
于 2011-09-08T09:57:16.280 に答える