El efecto de búsqueda en vivo no es una novedad en las aplicaciones de escritorio. En Mac OS X o Windows Vista / 7, simplemente escriba algunas letras en un cuadro de búsqueda, casi instantáneamente obtendrá el resultado de la búsqueda sobre la marcha. Tener que presionar el botón enviar se está convirtiendo en la vieja escuela..
Este tutorial le mostrará cómo traer este efecto genial al mundo web con jQuery. El código utilizado en este tutorial se modifica según el enfoque de John Resig.
Efecto Livesearch en Windows 7
Efecto Livesearch en OS X
Para empezar, necesitamos algunos elementos html que incluyen:
… Y dos bibliotecas de javascript:
Por último, pero no menos importante, necesitamos algunos elementos para buscar. En este tutorial, usemos los nombres de muchos marcos web como datos ficticios, ¿de acuerdo? (Ver la lista de estos marcos)
Los datos de "búsqueda de" se pueden proporcionar en matrices, JSON o cualquier forma, siempre que se puedan recorrer en javascript. También se pueden utilizar matrices multidimensionales. Pero para facilitar la demostración y la comprensión, los datos utilizados en este tutorial son una simple matriz unidimensional llamada "elementos".
Y finalmente, aquí está el HTML. Preste atención a dónde se incluyen las dos bibliotecas JS. Nota: css no es la parte clave de este efecto, por lo que no gastaremos ningún segundo en el estilo. Están minificados. Espero que esto no te moleste ni te distraiga. Centrémonos en HTML y JS.
Guarde el siguiente código en un archivo html y comencemos!
jQuery Livesearch Effect Demostración de jQuery Livesearch
Encuentra tu marco web favorito
<-- Type in here and get search results LIVE!
Como hombre de javascript, no puedes vivir sin Firebug hoy. Definitivamente es una necesidad para cualquiera que trabaje con jQuery. Puedes completar este tutorial sin tener instalado Firebug. Pero con Firebug, podemos ver muchas cosas detrás de la escena, lo cual es esencial para entender la búsqueda en este sentido..
¿Recuerdas los artículos ficticios para buscar? Sí, los nombres del marco. Vamos a ver si están en el lugar correcto con Firebug:
Deberías ver algo que se muestra en la imagen de abajo. Firebug imprime la variable "elementos" que es una matriz. Sí, los nombres de nuestros marcos están ahí, en su lugar. Continúemos!
Ahora, hablemos de la lógica. Para que este efecto funcione, una secuencia de cosas debe ocurrir:
Fácil, ¿eh? Salvo por una cosa. Si busco un marco llamado "cake", la lógica anterior se ejecuta, un ciclo por letra, 4 ciclos en total, ¿verdad? Pero los primeros 3 ciclos son completamente innecesarios, solo para reducir el rendimiento de manera importante. Para mitigar esto, esperaremos hasta que el usuario deje de teclear antes de disparar nuestra lógica. Y si un usuario deja de teclear por 0,2 segundos, asumimos que termina. A este punto, nuestra lógica es suficientemente delicada. Es hora de ensuciarse las manos y comenzar a programar.!
En la vida real, escuchar puede ser extremadamente importante. Esto también es cierto en el mundo de jQuery, donde todo comienza al escuchar un evento..
Busque "marcador de posición" en el archivo HTML. Pon el siguiente código en ese lugar.
El siguiente código escucha el evento keyup. Tíralos entre ele