2012-06-27 3 views
15

मैं एक आवेदन जेएसएफ पर काम कर रहा हूं और मैं समय-समय पर एजेक्स के साथ एक घटक को रीफ्रेश करना चाहता हूं जैसे फेसबुक अधिसूचना क्षेत्र व्यवहार। मैं यह कैसे कर सकता हूं?जेएसएफ, समय-समय पर अजाक्स के साथ एक घटक ताज़ा करें?

+5

भविष्य प्रश्नों में यदि आप स्पष्ट रूप से क्या घटक पुस्तकालयों आप सभी प्रयोग का उल्लेख, PrimeFaces है जैसे कि यह मददगार होगा है। यदि आप कुछ भी उल्लेख नहीं करते हैं, मानक जेएसएफ हमेशा माना जाएगा। – BalusC

उत्तर

30

पोल क्या आप एक निर्दिष्ट अंतराल में

पोल घटक मेकअप ajax कॉल उपयोग करने की आवश्यकता है।

उदाहरण के लिए Primefaces पोल

<h:form id="form"> 
    <h:outputText id="txt_count" value="#{counterBean.count}" /> 
    <p:poll interval="3" listener="#{counterBean.increment}" update="txt_count" /> 
</h:form> 

लिंक का प्रदर्शन करने के Primefaces Ajax Poll

शुद्ध JSF दृष्टिकोण की जाएगी js टाइमर कि लागू करेगा उपयोग करने के लिए समय-समय पर document.getElementById('someFormId:idOfButton').click();

या jQuery $("#someFormId\\:idOfButton").click();

जबकि बटन एल देखेंगे आइक इस

<h:commandButton id="idOfButton"> 
    <f:ajax render="txt_count"></f:ajax> 
</h:commandButton> 

कुछ की तरह टाइमर JavaScript Timing Events

+2

ओपी के प्रश्न इतिहास के आधार पर, वह प्राइमफेस का उपयोग कर रहा है, इसलिए यह एक आदर्श सूट है। – BalusC

5

के बारे में इस

setInterval(function(){$("idOfButton").click()},3000); 

अधिक RichFaces में एक जनमत सर्वेक्षण घटक के रूप में अच्छी तरह से है। यहाँ एक अच्छा उदाहरण they प्रदान

<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> 
संबंधित मुद्दे