Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

309
Vistas
Intentando realizar una búsqueda ligeramente diferente (¿Temporizador, detector de eventos, envío de eventos?)

Cómo necesito:

  1. La primera tecla activada (entrada de búsqueda) activa el temporizador de cuenta regresiva de búsqueda y establece el temporizador en 1 s.
  2. Cada siguiente tecla de búsqueda activada (entrada de búsqueda) restablece el temporizador de cuenta regresiva de búsqueda a 1 s.
  3. Cuando (entrada de búsqueda) ya no se actualice y permanezca igual -
  4. El temporizador de cuenta regresiva de búsqueda llegó a 0 y se está realizando una búsqueda.

Por qué necesito (de esta manera):

Tengo una gran base de datos de registros y uso el método ajax para buscar. Cada vez que se activa la tecla (entrada de búsqueda) se envía una solicitud... (es un desperdicio de recursos e incómodo ver cómo la página actualiza cada tecla). Entonces, mi forma es crear una "fase de escritura" , lo que quiero decir descrito anteriormente.

¡Solo JS puro , sin bibliotecas! Gracias.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

lo que necesitas se llama función de rebote.

si no usa bibliotecas como lodash, puede darse cuenta de esto:

 function debounce(f, ms) { let isCooldown = false; return function() { if (isCooldown) return; f.apply(this, arguments); isCooldown = true; setTimeout(() => isCooldown = false, ms); }; }

entonces puedes codificar así:

 const handleSearch = (search) => { // your logic with fetch or whatever } const handleSearchDebounced = debounce(handleSearch, 300)
about 4 years ago · Juan Pablo Isaza Denunciar

0

 var timer=null; document.getElementById("myInput").onkeyup = ()=>{ clearInterval(timer); timer = setInterval(()=>{ console.log("call ajax search function here."); clearInterval(timer); },1000); };
 <input type="text" id="myInput">

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda