我想在用戶閒置時自動更新數據表(在客戶端)。我使用的是PrimeFlash 3.5 with glassfish,我的想法如下:Primefaces,空閒時定期更新
我在boolean autoUpdate
bean中有變量。用戶可以打開/關閉自動更新。
我創建了兩個組件:p:poll
和p:idleMonitor
。
的idleMonitor
有兩個事件,其觸發更新
<p:ajax event="idle" oncomplete="myPoll.start();" />
<p:ajax event="active" oncomplete="myPoll.stop();" />
這部分是確定的。問題是,如何將autoUpdate
設置爲False
時禁用idleMonitor
?當我做
<h:panelGroup id="updatePanel" rendered="#{cc.attrs.bean.autoUpdate}">
....
</h:panelGroup>
,如果我開始與autoUpdate = false
,我可以切換模式只有一次才起作用。一旦渲染,它就不能改變。我也試過
<p:ajax event="idle" oncomplete="#{cc.attrs.bean.autoUpdate ? 'myPoll.start();' : ''}" />
但它也沒有工作。 #{cc.attrs.bean.autoUpdate}
從未改變。即使我打電話給它,我可以看到在另一個地方變化的變量。
所以,我的問題是:有沒有辦法如何禁用idleMonitor後,它被呈現?或者對於空閒用戶的可選定期更新,更好的解決方案是什麼?
所以你想空閒監視器,但只有一次?當第二次用戶閒置時,你不需要該選項? –
不,我想每次用戶閒置時都需要空閒監視器。但只有當他將'autoUpdate'設置爲'True'。這意味着,他可以在會話期間在「真」和「假」之間切換,而無需重新加載頁面。 – tvazac
嗯,你有沒有嘗試p:outputPanel而不是h:panelGroup?第一個更好的和聲是我的主觀感受。 –