Ich muss eine Seite ständig mit neuen Daten aktualisieren, die von managedbeans erzeugt werden. Managedbean erstellt für alle paar Minuten eine neue Liste von Werten, und die Benutzeroberfläche muss für jeden Wert in der neu erstellten Liste nach "managedbean" einen Ausgabetext erstellen. Catch ist, die UI sollte die outputTexts behalten und neue für jede Anfrage hinzufügen, sie sollte alte outputTexts nicht aktualisieren/entfernen.Einen oder mehrere outputText der vorhandenen Seite dynamisch hinzufügen
Mein Code ist wie folgt - aktualisiert die gleichen outputText Felder für jeden Ajax Anruf, die ich wie oben erwähnt ändern muss.
<c:forEach var="data" items="#{myBean.dataList}">
<p:fieldset legend="#{data}" toggleable="true" toggleSpeed="500">
<h:panelGrid columns="2" cellpadding="5" border="0">
<p:scrollPanel style="height:300px">
<p:poll interval="2" listener="#{myBean.getDataList}" update="field1 field2"/>
<h:outputText value="#{data.field1}" id="field1"/>
<h:outputText value="#{data.field2}" id="field2"/>
</p:scrollPanel>
</h:panelGrid>
</p:fieldset>
</c:forEach>
so für jeden Ajax-Aufruf, kann es einige Datenelemente von managedbeans und für jedes dieses Artikel hergestellt werden soll ein neues output Feld sein.
Aber ganze Datenliste wird für jeden Ajax-Call richtig aktualisiert? die die Leistung über einige hundert Datenelemente beeinträchtigen könnte. – user3366706
Sie müssen die Ansicht aktualisieren, wenn Sie ein neues Ausgabekennzeichen hinzufügen müssen? Wenn nicht, ist es keine Möglichkeit, etwas Neues ohne Fire Update hinzuzufügen, für die Performance können Sie Datalist nur aktualisieren, wenn es benötigt wird, Sie können Back Bean einchecken und von Bean aktualisieren, wenn es benötigt wird. Wenn Sie irgendeine Lösung haben, lassen Sie es mich wissen, ich möchte auch die Lösung dafür. –