Я хочу автоматически обновлять данные (на клиенте), когда пользователь бездействует. Я использую Primefaces 3.5 со стеклянной рыбой, и моя идея заключалась в следующем:
У меня есть переменная boolean autoUpdate
в компоненте. И пользователь может включить/выключить автоматическое обновление.
Я создал два компонента: p:poll
и p:idleMonitor
.
idleMonitor
имеет два события, которые запускают обновление
<p:ajax event="idle" oncomplete="myPoll.start();" />
<p:ajax event="active" oncomplete="myPoll.stop();" />
Эта часть в порядке. Проблема в том, как отключить idleMonitor
, когда autoUpdate
установлено на False
? Когда я делаю
<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 после его рендеринга? Или какое решение лучше для дополнительного периодического обновления для пользователя бездействующего?
autoUpdate
установлено вTrue
. Это означает, что он может переключаться междуTrue
иFalse
во время сеанса без перезагрузки страницы. - person tvazac   schedule 26.07.2013