Contenido

Pongamos a dieta nuestro Script.aculo.us (18KB)

24 sep

+ 9

Para mi, script.aculo.us, es quizas una de las más completas librerías de efectos aunque como he comentado un millón de veces el tamaño es muy exagerado para el uso que le vamos a dar. Osea que estamos cargando demasiado la web para usar 1, 2 o 3 efectos.

Para corregir esto hemos usado otras librerías que nos permiten realizar los mismos efectos en menos espacio. Pero si apesar de todo estamos emperrados en usarlo podremos comprimirlo y dejarlo en un peso más o menos normal (18kb).

¿Como lo hago?

  • El fichero scriptaculous.js simplemente se encarga de cargar los demás ficheros que componen la librería, y conociendo el orden:

<script type="text/javascript" src="protype.js" ></script>
<script type="text/javascript" src="builder.js" ></script>
<script type="text/javascript" src="effects.js" ></script>
<script type="text/javascript" src="dragdrop.js" ></script>
<script type="text/javascript" src="controls.js" ></script>
<script type="text/javascript" src="slider.js" ></script>

Sabiendo esto ya podemos ahorrarnos un fichero, quizas sean muchos ficheros javascript, pero … veamos como reducir el número :D

  • Buscamos en el fichero prototype.js (versión 1.50 RC2).
HTMLElement.prototype = document.createElement('div').__proto__;

Y lo reemplazamos por lo siguiente.

eval('HTMLElement.prototype=document.createElement("div").__proto__;');

Asi abremos reducido el tamaño de nuestro script.aculo.us de forma considerable.

  • Bueno, tienes razon en cuanto al peso de la libreria, pero bien es lo que puede llegar a pesar una o dos imagenes de tamaño mediano.

    Por otra parte para algo existe el cache de los navegadores, para que no siempre se tenga que estar descargando.

  • #4 La caché es una gran aliada de script.aculo.us. Pero ¿por que usar 180kb de javascript para hacer lo mismo que con 30kb de MooTools?

  • Conozco el gran trabajo de Dean Edwards. El problema que encuentro es que el código no es para nada ilegible. Basta con escribir el resultado de la funcion de desempaquetado en el body de una nueva ventana y voila.
    No obstante creo que resulta enormemente interesante combinarlo con CopyRightParser (made in spain). En este sitio se modifica el código de forma que solo funcione para el dominio especificado, evitando la portabilidad del mismo. Además puede añadirse una linea de copy right visible y muy difícil de eliminar. Con esto no solo se empaqueta el código, sino que además se protege la autoría del desarrollo, de forma que su distribución corresponda única y exclusivamente al autor, y no a terceras personas ajenas al desarrollo del mismo y sin permiso expreso del propietario.

  • O sea, que está muy bien usar el código de otros pero malditos sean los que quieran usar el nuestro?

    La exclusividad del código se perdió cuando se inventó la web. Aprendamos a vivir con esto.

  • Yo no digo que no haya que utilizar el código de terceros. Pero al menos se debería estar en posesión de un mínimo de decencia para reconocer que el trabajo es de otro. Es precisamente ese otro el que debe establecer la forma de distribución de su trabajo, que para eso le ha llevado sudores varios y cabezazos contra la mesa. Si luego decide distribuirlo libremente será su decisión personal, la cual alavo profundamente. Lo único que yo expongo es que existe la posibilidad de que aquel desarrollador que lo desee pueda proteger su código con unas medidas, por supuesto no irrompibles, pero al menos suficientes para espantar a todos aquellos intrusos y enteradillos, que resuelven aplicaciones complejas en dos patadas, apropiándose del código y la autoría de desarrollos de terceros. Y aún diré más. Si consiguen romper las protecciones se habrán ganado el uso del código en discordia, puesto que para eso hacen falta conocimientos más bien avanzados, que se suponen en un desarrollador experto, capaz por otro lado de desarrollar un sistema de parecidas características si fuera el caso.
    Resumiendo. ¿El código libre? Sí, pero con permiso del autor.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.