Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/04/2014, 11:37
Avatar de Djoaq
Djoaq
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 12 años, 1 mes
Puntos: 38
Pregunta evento onkeyup y tiempo.

Hola , primero de todo decir que estoy aprendiendo y no tengo estudios ... soy autodidacta . Así que les ruego tengan paciencia.

En segundo lugar les cuento :

Estoy realizando mi propia web , en la cual he realizado un buscador con un evento onkeyup el cual dispara una función ajax que pasa mis datos a un php y me trae los resultados de vuelta.

Hasta ahí todo bién! El problema viene que estoy haciendo una petición por cada letra ... y me gustaría hacer una petición por cada keyup cada p.ejem 2 segundos desde que el usuario aprieta una tecla...

entonces hice esta función que utiliza los metodos setimeout y cleartimeout :

Código Javascript:
Ver original
  1. function buscador(){
  2.                   var segundos=2000;
  3.                   clearTimeout(temp);
  4.           var temp = setTimeout(function(){
  5.               var buscoInput =  $('.busqueda').val();
  6.                   $.ajax({
  7.                    type: "POST",
  8.                    dataType: 'json',
  9.                    url: url,
  10.                    data: { mi envio buscoInput php },
  11.                    success: function(respuesta){mi respuesta php}    
  12.                    });
  13.             },segundos);
  14.           }

Teniendo en cuenta que tengo un evento onclick="busqueda()" .

Asi me funciona y hace lo que quiero , pero me envía una petición por cada pulsación ... la pregunta es.. como podría hacer para cancelar y re-setear el tiempo cuando la función vuelva a ser llamada?

Un saludo gracias!