JQuery integrado en el código del Menéame

Desde ayer integramos JQuery en el código del Menéame. JQuery es una librería Javascript similar a Prototype.js, pero más ligera y pequeña. Desde hace varias semanas estaba analizando a las dos para ver cuál de ellas usar, esencialmente para el tratamiento del DOM y propiedad HTML/CSS. Prototype no me acabó de convencer por su tamaño –70 KB– y sobre todo porque la gestión del timeouts AJAX –esencial para la fisgona– no está bien resuelto.

Al final me decidí por las JQuery y la verdad que facilita bastante la programación de cosas básicas de Javascript+Ajax. Por ejemplo el código de la fisgona está totalmente cambiado, gracias al jquery pude cambiar el tratamiento del HTML dinámico, ahora se hace a base de manipular el árbol DOM, por lo que es mucho más –muchísimo– eficiente y rápido.

Además fue muy fácil agregar nuevas características, como el ping para tener una idea de cómo funciona la conexión entre el navegador y el servidor del menéame (desde un cable modem que vaya bien debería dar valores entre 60 y 80, un ADSL unos valores un poco más altos, 100-150).

El telnet (o jefa) también recibió un regaltio casi gratis, un pequeño Fade In en los nuevos items.

También se cambió toda la parte genérica del código Javascript, ahora todo el Ajax usa funciones del JQuery, e incluso algunos de los efectos especiales estándares de las librerías –como el Fade In en el número de votos–.

Y todo eso con código bastante más pequeño y legible (siempre y cuando conozcas cómo funciona el JQuery, caso contrario parecen $(jeroglíficos).escritos en $Perl :-).

El tamaño de la librería sin comprimir es de 55 KB, pero ellos se preocupan de codificarlas para que puedan ser comprimidas e incluso facilitan el código comprimido para que lo bajes. Es éste el que usamos y tiene unos 18 KB, que como además se comprimen en nuestro servidor lo que se transmite no llega a los 10 KB. Me parece un buen balance costo-beneficios.

No sé si es la mejor opción, pero ha sido divertido reporgramar el menéame, y si en el futuro hay que migrar a otra diferente, no hay problemas, será más diversión gratis :-).

About these ads

7 pensamientos en “JQuery integrado en el código del Menéame

  1. Arnau

    Hola Ricardo, ¿Cómo has implementado lo funcionalidad de ping? Me he bajado el código del repositorio y he hecho una búsqueda por ping pero no me ha salido nada.

    Muchas gracias

    Responder
  2. lolailo

    [OFF TOPIC]
    No sabia muy bien donde hacerte esta sugerencia así que esta aprovecho esta vía de comunicación:

    Navegando en meneame con mi flamante Wii me di cuenta de que no podía buscar porque no hay un botón para enviar el formulario de búsqueda y el Wiimote no tiene tecla enter!!

    Nada más, felicidades por Menéame
    [OFF TOPIC]

    Responder
  3. bewog

    prototype tambien se puede comprimir (al igual que cualquier otro script) en http://dean.edwards.name/packer/ por ejemplo, con lo cual la diferencia de tamaño se convierte en irrelevante. Al fin y al cabo lo que importa es la funcionalidad que aporta. Lo que a mi me convencio de prototype es su uso por scriptaculous, de forma que se pueden aprovechar los scripts de esta libreria.

    Responder
  4. Jaime

    Hola,

    En defensa de Prototype (mi preferido), quiero decir que no son 70 Kb, sino 61 Kb (v1.5.0). Y que tras pasar por el gzip del servidor se queda en unos cómodos 13 Kb. Cierto es que JQuery es más pequeño (10 Kb me llegan ahora mismo desde Meneame, pero doblemente comprimido por el packer y por el gzip), pero Prototype también está muy bien :-)

    Por otra parte, ¿realmente tiene tanto interés que la librería sea pequeña? Los navegadores cachean un montón los javascripts. La verdad, no creo que un mismo usuario descague el mismo JS más de una vez al mes. Algo como lo que pasa con el CSS.

    Un saludo.

    Responder
  5. percy

    hola.
    encontre algunas aplicaciones que usan los dos jquerys el comprimido de 18k y el otro de 55k, el problema es que la aplicaciones k necesita el jquery de 18k solo funciona con ese pero no con el de 55k,pregunta… que no funcionaria lo mismo?¿

    porfavor algeuin que pueda iluminar a este estudiante…
    Gracias

    Responder

Deja un comentario

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s