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 :-).