Wie man eine Verzögerung (300ms zum Beispiel) hinzufügt, wenn der AjaxStatus der Primefaces angezeigt wird. Im Moment wird es immer sofort angezeigt, wenn eine Ajax-Anfrage aussteht. Dies ist zum Beispiel bei "onkeyUp" -Ereignissen mühsam, wenn jeder Tastenanschlag den Ladedialog für einen Bruchteil einer Sekunde heraufbringt.Wie verzögert man Primefaces AjaxStatus auf JSF?
Hier ist meine AjaxStatus Ladeanzeigekomponente.
<p:ajaxStatus id="startAjax" onstart="PF('start').show();" oncomplete="PF('start').hide();" >
</p:ajaxStatus>
<p:dialog widgetVar="start" showHeader="false" resizable="false">
<h:graphicImage value="#{resource['/images/loading.gif']}"></h:graphicImage>
</p:dialog>
Sie primefaces Erweiterung verwenden können '' und rufen ajaxStatus von Timer oder 'onShow' Eigenschaft gibt es in' ' erhältlich von Timer aufrufen denen tue nichts, warte nur und dann wird die Steuerung zurück zum Dialog und ajaxStatus wird angezeigt. –
techipank
@techipank, es scheint, dass pe: timer ist veraltet. Ich füge Primefaces-Erweiterungen zu maven-Abhängigkeiten und dem Namespace xmlns hinzu: pe = "http://primefaces.org/ui/extensions" und pe: bietet nur Timeline- und Timepickerkomponenten an. Es gibt keinen Timer. Vielleicht wäre auch geeignet. –
Mit Ihrer eigenen Javascript-Funktion: 'onstart =" myStart ('start') "' und in 'function myStart (pfo) {' benutzen Sie 'window.setTimeout()' zum Aufruf von 'PF (pfo) .show() ' – Holger