JSF ajax event delay

I want to implement a live filter for a list with JSF 2, but when using an event, keyupso many requests are sent to the server. The code looks like this:

<h:inputText id="filter_input" value="#{bean.filterText}">
    <f:ajax event="keyup" listener="#{bean.filter}" 
        render="@form:list" execute="@this" />
</h:inputText>
+4
source share
2 answers

f:ajaxAdded support for ajax event delay starting with JSF 2.2. Just include it as an attribute with a value in milliseconds:

<f:ajax event="keyup" delay="1000" listener="#{someBean.doSomething}"
    render="somefield" execute="@this" />

See also:

+8
source

If you are using a previous version of JSF, PrimeFaces supported a similar feature earlier than JSF:

<p:ajax event="keyup" delay="1000" listener="#{bean.filter}"
        update="somefield" process="@this" />

, PrimeFace render execute. update process ( process="@this" , p:ajax)

: https://www.primefaces.org/docs/vdl/5.0/core/primefaces-p/ajax.html

, : keyface Primefaces

0

All Articles