有誰知道我如何能做到這一點使用檢票的想法?檢測檢票用戶閒置
我想當一定量的時間沒有檢測到用戶活動來自動顯示一個檢票odal窗口。我正在考慮以某種方式使用AjaxSelfUpdatingBehavior,但實際上我沒有明確的想法。
這可能與檢票?
有誰知道我如何能做到這一點使用檢票的想法?檢測檢票用戶閒置
我想當一定量的時間沒有檢測到用戶活動來自動顯示一個檢票odal窗口。我正在考慮以某種方式使用AjaxSelfUpdatingBehavior,但實際上我沒有明確的想法。
這可能與檢票?
此外,您還可以使用一些JS庫不是捕捉所有Ajax調用,並可以肯定,你的用戶是真正AFK(甚至沒有觸及他的鼠標)。
和(如果你使用這個JS框架)在檢票口,你必須處理
ifvisible.idle(function(){
Wicket.Ajax.get({u: '${callbackUrl}'})// This code will work when page goes into idle status
});
您必須設置$ {} callbackUrl從檢票口代碼來讓JS知道在Java代碼中進行什麼操作。這並不難。看看here。
這種方法比較棘手,但是如果你實現這個,你根本不用擔心用戶的操作(他可以閱讀網站的信息,不要點擊任何ajax鏈接,但突然間他會看到模態窗口)。
當然可以,我用這個作爲自動註銷功能
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調用時用新的定時器替換定時器,或重置定時器。
謝謝!你說你在做Ajax調用時替換定時器。你是怎樣做的? – user1119371 2014-09-22 07:09:54
我認爲,你可以在頁面上存儲你的「MyTimer」實例作爲變量,並在每一個Ajax調用,在你的頁面(通過AjaxLink,AjaxBehavior等),調用myTimer.restart(AjaxRequestTarget)不是爲了創造另一個實例處理的計時器。 – 2014-09-22 07:27:33
謝謝。這完美的作品! – user1119371 2014-09-22 13:08:29