3

Wicket を使用してこれを達成する方法を知っている人はいますか?

ユーザーの操作が一定時間検出されなかった場合に、Wicket odal ウィンドウを自動的に表示したいと考えています。AjaxSelfUpdatingBehavior を何らかの方法で使用することを考えていますが、実際には明確なアイデアがありません。

これは Wicket で可能ですか?

4

2 に答える 2

1

はい、できます。これを自動ログアウト機能として使用します

public class MyTimer extends AbstractAjaxTimerBehavior {

    public MyTimer(int seconds) {
        this(Duration.seconds(seconds));
    }

    @Override
    protected void onTimer(AjaxRequestTarget target) {
         // show your window magic
    }
}

これをページ ( add(new MyTimer(300));) に追加すると、指定した秒数後に呼び出されます。ajax呼び出しを行うときは、タイマーを新しいものに置き換えるか、リセットしてください。

于 2014-09-22T06:02:22.217 に答える
1

また、一部の js ライブラリを使用して、すべての ajax 呼び出しをキャッチしないようにし、ユーザーが本当に afk である (マウスに触れていない) ことを確認することもできます。

たとえば、この無料のフレームワークとデモをご覧ください。

そして(このjsフレームワークを使用している場合)ウィケットで処理する必要があります

ifvisible.idle(function(){
    Wicket.Ajax.get({u: '${callbackUrl}'})// This code will work when page goes into idle status
});

ウィケット コードから ${callbackUrl} を設定して、java コードでどのアクションを実行するかを js に知らせる必要があります。これを行うのは難しくありません。ここを見てください。

このアプローチはよりトリッキーですが、これを実装すると、ユーザーの操作をまったく心配する必要がなくなります (ユーザーはサイトの情報を読み取ることができ、Ajax リンクをクリックする必要はありませんが、突然モーダル ウィンドウが表示されます)。

于 2014-09-22T07:11:50.687 に答える