Wicket を使用してこれを達成する方法を知っている人はいますか?
ユーザーの操作が一定時間検出されなかった場合に、Wicket odal ウィンドウを自動的に表示したいと考えています。AjaxSelfUpdatingBehavior を何らかの方法で使用することを考えていますが、実際には明確なアイデアがありません。
これは Wicket で可能ですか?
Wicket を使用してこれを達成する方法を知っている人はいますか?
ユーザーの操作が一定時間検出されなかった場合に、Wicket odal ウィンドウを自動的に表示したいと考えています。AjaxSelfUpdatingBehavior を何らかの方法で使用することを考えていますが、実際には明確なアイデアがありません。
これは Wicket で可能ですか?
はい、できます。これを自動ログアウト機能として使用します
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呼び出しを行うときは、タイマーを新しいものに置き換えるか、リセットしてください。
また、一部の 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 リンクをクリックする必要はありませんが、突然モーダル ウィンドウが表示されます)。