ユーザーがアイドル状態のときに(クライアントで)データテーブルを自動更新したい。私はグラスフィッシュでPrimefaces 3.5を使用していますが、私の考えは次のとおりです。
私はboolean autoUpdate豆に変数を持っています。また、ユーザーは自動更新のオン/オフを切り替えることができます。
p:pollとの 2 つのコンポーネントを作成しましp:idleMonitorた。
にはidleMonitor、更新をトリガーする 2 つのイベントがあります。
<p:ajax event="idle" oncomplete="myPoll.start();" />
<p:ajax event="active" oncomplete="myPoll.stop();" />
この部分は大丈夫です。問題は、 が?に設定されているidleMonitor場合に無効にする方法です。私がする時autoUpdateFalse
<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}決して変更されません。私も upadte を呼び出していますが、別の場所で変数が変更されていることがわかります。
だから、私の質問は次のとおりです:レンダリングされた後にidleMonitorを無効にする方法はありますか? または、アイドル状態のユーザー向けのオプションの定期的な更新のより良い解決策は何ですか?