The a4j:attachQueue component allow you to funnel requests from specific components or behaviors through a 'named' queue (see queue example), but also allows you to override queue settings right from the component.
This sample shows how requestDelay can be changed for single component.
Note that when you are typing in the input - the status appears with a two seconds delay because the default queue contains requestDelay="2000". However when you are clicking the "submit" button - it appears immediately because requestDelay changed to 0 for the button.
<!DOCTYPE html> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"> <a4j:queue requestDelay="2000" rendered="#{not (userAgent.phone || userAgent.tablet)}"/> <h:form id="form"> <rich:panel bodyClass="bClass"> <h:outputText value="Type there:" /> <h:inputText> <a4j:ajax event="keyup" listener="#{userBean.causeDelay}"/> </h:inputText> <a4j:commandButton value="submit" actionListener="#{userBean.causeDelay}"> <a4j:attachQueue requestDelay="0" /> </a4j:commandButton> <a4j:status> <f:facet name="start"> Please wait... </f:facet> </a4j:status> </rich:panel> </h:form> </ui:composition>