0

<p:poll interval='3' update='messages'/>メッセージを一度更新した後にタグを停止し、メッセージを閉じるときにタグを再開するにはどうすればよいですか?

基本的に、私はこのコードを持っています:

<pe:layoutPane id="south" position="south" size="70">
   <p:messages id="messages" autoUpdate="true" >  
      <script>
          jQuery('#messages').effect("pulsate", {times:5}, 1000 );
          jQuery('#messages').show();
       </script>
  </p:messages>
  <h:form id="pollF">
      <p:poll interval="10" listener="#{alarmsBean.checkAlarms()}" update=":messages" partialSubmit="true" widgetVar="poll"/>
  </h:form>
</pe:layoutPane>

Primefaces には poll.stop() と poll.start() を呼び出す機能があるように見えますが、問題は、ボタンの onclick イベントからその機能を紹介していることです。

私の問題は、ここにボタンがなく、ボタンが必要ないことです。メッセージタグが一度更新されたときに poll.stop() が呼び出されるようにします。そして、メッセージタグが閉じられたときに poll.start() が呼び出されるようにします。

4

1 に答える 1

0

外部パネルを含めて、ポーリングによって更新します。次に、パネルに条件を設定して、投票を停止します。これがどれほど効率的かはわかりませんが、機能します。

<p:panel id="topPanel" style="border-color: white" > 
      <script>
            function stopMe(){
                new window().refresh();
                //poll.stop(); // I just refresh the window that stops the poll as I expereinced issue with pool.stop() while using dynamically
            }
          </script>
        <c:if test="${bean.var}"> //set a boolean after setting your message in your bean
           <script> stopMe() </script>
       </c:if>
        <p:poll interval="10" widgetVar="poll"  autoStart="true" update=":topPanel, :messages" />

</p:panel>
于 2012-07-03T12:12:32.343 に答える