Saltar al contenido

primefaces keyup u otro retraso de evento ajax

Luego de mucho batallar pudimos hallar el arreglo de este asunto que agunos usuarios de nuestro sitio tienen. Si deseas aportar algún dato puedes compartir tu comentario.

Solución:

Si usa Primefaces 5.x, hay un delay attribute en el p:ajax etiqueta para este propósito. Así que se hace así:


    

Si no, podrías lograrlo usando f:ajax en vez de p:ajax (sí, funciona con p:inputTexttambién). f:ajax ha agregado soporte para el control de colas a partir de JSF 2.2. Entonces el código se ve así:


    

Ver también:

  • Primefaces 5.0 p:ajax javadoc
  • JSF 2.2 documentos para f:ajax

¿Por qué no usas el componente RemoteCommand de PrimeFaces?

Le brinda una función Javascript global, a la que puede llamar desde cualquier lugar cuando lo desee. Y le permite llamar al método de bean administrado y tiene el update attribute para actualización parcial.




    

Registre el controlador de eventos, tomé prestado lo siguiente de la misma respuesta que publicó:

var delay = (function() 
    var timer = 0;
    return function(callback, ms) 
        clearTimeout (timer);
        timer = setTimeout(callback, ms);
    ;
)();


jQuery("#input").keyup(function() 
    delay(function()  sendAjaxical(); , 2000); //sendAjaxical is the name of remote-command
);

Sección de Reseñas y Valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *