Pracuję nad aplikacją JSF i chcę okresowo odświeżać komponent z ajaxem Jak zachowanie strefy powiadamiania facebook. Jak mogę to zrobić?JSF, okresowo odświeżać komponent z ajaxem?
Odpowiedz
Sonda jest to, czego potrzebujesz do korzystania
ankiety Utwórz komponent ajax połączeń w określonym przedziale czasu.
Na przykład Primefaces Sonda
<h:form id="form">
<h:outputText id="txt_count" value="#{counterBean.count}" />
<p:poll interval="3" listener="#{counterBean.increment}" update="txt_count" />
</h:form>
Link do zaprezentowania Primefaces Ajax Poll
Czysta JSF podejście byłoby użyć js czasomierz, który wykonuje okresowe document.getElementById('someFormId:idOfButton').click();
lub jQuery $("#someFormId\\:idOfButton").click();
natomiast przycisk będzie wyglądał l ike to
<h:commandButton id="idOfButton">
<f:ajax render="txt_count"></f:ajax>
</h:commandButton>
coś takiego
setInterval(function(){$("idOfButton").click()},3000);
Więcej o czasomierz JavaScript Timing Events
Opierając się na historii pytań OP, używa PrimeFaces, więc jest to idealny kombinezon. – BalusC
W RichFaces jest składnikiem poll, jak również. Oto dobry przykład they zapewnić
<a4j:region>
<h:form>
<a4j:poll id="poll" interval="1000" enabled="#{userBean.pollEnabled}" reRender="poll,grid"/>
</h:form>
</a4j:region>
<h:form>
<h:panelGrid columns="2" width="80%" id="grid">
<h:panelGrid columns="1">
<h:outputText value="Polling Inactive" rendered="#{not userBean.pollEnabled}" />
<h:outputText value="Polling Active" rendered="#{userBean.pollEnabled}" />
<a4j:commandButton style="width:120px" id="control" value="#{userBean.pollEnabled?'Stop':'Start'} Polling" reRender="poll, grid">
<a4j:actionparam name="polling" value="#{!userBean.pollEnabled}" assignTo="#{userBean.pollEnabled}"/>
</a4j:commandButton>
</h:panelGrid>
<h:outputText id="serverDate" style="font-size:16px" value="Server Date: #{userBean.date}"/>
</h:panelGrid>
</h:form>
W przyszłych pytań byłoby pomocne, jeśli wyraźnie wspomnieć, jaki składnik biblioteki wy wszyscy używania, jak PrimeFaces. Jeśli nic nie mówisz, zawsze zakłada się standardowy JSF. – BalusC