elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Resuelto] Esperar cierto tiempo para empezar a buscar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Esperar cierto tiempo para empezar a buscar  (Leído 1,935 veces)
:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
[Resuelto] Esperar cierto tiempo para empezar a buscar
« en: 7 Agosto 2015, 17:26 pm »

Hola gente,

Tengo una pequeña duda, cuando tengo un formulario de busqueda que empieza a buscar en la base de datos cuando el usuario esta escribiendo.
Con Jquery escucho lo que escribe y cuento los caracteres y cuando ha escrito 3 o mas caracteres el sistema se pone a buscar en la base de datos.

Pero esto me esta causando problemas porque tengo mas de veintiseis mil registros y la base de datos sufre un poco porque empieza a buscar desde el tercer caracter ingresado, y aun sin haber terminado de buscar el usuario sigue enviando solicitudes porque sigue escribiendo, a veces escribe 20 caracteres y el servidor se pone lento.

Entonces creí adecuado poner un contador de tiempo, algo asi como contar 500 ms y recien empezar a buscar, osea empezar a buscar cuando el usuario ha dejado de escribir por al menos medio segundo, me dejo entender?

He visto posibles soluciones con el setTimeout(), pero necesito disparar el evento cuando se empieza a escribir después del tercer caracter ingresado y cuando ha dejado de hacerlo por mas de 500 ms.

Alguien me da una mano?

Saludos

--OHK--


« Última modificación: 11 Agosto 2015, 12:36 pm por #!drvy » En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Esperar cierto tiempo para empezar a buscar
« Respuesta #1 en: 7 Agosto 2015, 20:04 pm »

Necesitas establecer un timeout para ejecutar una peticion despues de 500ms cada que el usuario teclee. Este timeout lo tieens que guardar en una propiedad del elemento y revisar si existe primero. Si existe entonces tienes que limpiar el timeout y luego volver a establecer el timeout.

Código
  1. $('#input').on('input', function(){
  2.  if(this.timeId !== undefined){
  3.     //Necesita limpiarse:
  4.    window.clearTimeout(this.timeId);
  5.  }
  6.  this.timeId = window.setTimeout(/*tu function a ejecutar a los 500ms*/, 500);
  7. });

Tambien tienes que considerar la peticion que estas enviando al servidor. Por ejemplo...

El usuario teclea 'abc', se lanza el timeout.
Finaliza el timeout, se lanza la peticion AJAX.
El usuario teclea 'abcd', se lanza el timeout.
Finaliza el timeout, se lanza una nueva peticioin.

Ahora tienes que mostrar los resultados de la última petición y los resultados de la primera deben ser descartados.


En línea

:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: Esperar cierto tiempo para empezar a buscar
« Respuesta #2 en: 7 Agosto 2015, 22:05 pm »

Muchas gracias, lo pruebo de inmediato.

Saludos
En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Need for Speed Most Wanted - se sale a cierto tiempo
Juegos y Consolas
all-lockrv 6 5,323 Último mensaje 3 Enero 2006, 14:07 pm
por all-lockrv
Matar proceso cada cierto tiempo(.bat)
Scripting
Hearts 1 6,945 Último mensaje 11 Septiembre 2007, 17:30 pm
por nhaalclkiemr
[BATCH] Como hago para esperar una cantidad de tiempo ?
Scripting
Zorrohack 5 17,528 Último mensaje 26 Agosto 2012, 17:05 pm
por Zorrohack
[Resuelto] [Pregunta]: Tiempo adaptable
Desarrollo Web
Leguim 8 3,351 Último mensaje 23 Enero 2020, 03:25 am
por Leguim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines