1

我正在使用带有 gwtp 框架的 gwt 2.3。在这个应用程序中,我希望保持 5 分钟的会话时间。这意味着如果当前用户没有做最多 5 分钟并且他在 5 分钟后出现,那么他在屏幕上的第一个事件/动作a 他应该被注销。在 gwt 中有一个名为 Timer 的类,可以在这个问题中使用。但我不知道如何识别用户在屏幕上的操作。我在上面做了谷歌,找到了 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);

如果用户 shell 在 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 回答