Ahora que javascript comienza a perder la fama de lenguaje maldito y las aplicaciones web, repito, aplicaciones web son el pan nuestro de cada día (porque las usamos y porque comemos de ellas), la velocidad de descarga de los ficheros .js debe preocuparnos.
En Serving JavaScript Fast, Carl Herlson, de Flickr, habla largo y tendido sobre diferentes métodos para acelerar la carga de scripts y hojas de estilo (combinación, compresión, cacheado).
Aquí y hoy, nos vamos a centrar en la compresión de ficheros .js
.
Servicios en línea
Puedes comprimir/ofuscar tus scripts en línea con una de estas herramientas:
- packer, de Dean Edwards. Pegas o subes tu código, pinchas un botoncito y, voilà, código comprimido. Utiliza expresiones regulares para obtener un código realmente ininteligible obteniendo una compresión de 0.4 a 0.6.
- ShrinkSafe, del proyecto Dojo. Subes tu fichero o ficheros, y gritas con fuerza shrink em! (o pulsas el botón, como prefieras). Aunque el nivel de compresión no es tan bueno como el obtenido con packer, el resultado es más seguro, puesto que ShrinkSafe no utiliza expresiones regulares sino un intérprete de javascript (Rhino).
Háganlo en sus propias casas
Hagámoslo más fácil. Comprimamos desde la línea de comandos.
En el sitio web de Dean Edwards tenemos disponibles para descarga tres versiones, tres, que permiten utilizar packer en la máquina de cada cual. Dos de ellas (perl y WSH) resultan de lo más útiles para nuestra línea de comandos.
Servidor, que usa Windows, ha tomado la versión WSH y se ha currado un proceso por lotes (build.bat
) tal que:
cscript /nologo pack.wsf validatorrr.js 62 1 1 > validatorrr-p.js
De esta manera, solo tengo que teclear build
para obtener una versión comprimida de validatorrr.js
. Antes: 11.997 bytes, después 4.796 bytes.
Mejor que las cremas adelgazantes, oiga. Y barato, muy barato.
Para maceros y linuxeros, supongo que la versión en perl (que no he probado) ofrecerá ventajas similares. Así que si no comprimes es porque no quieres. No hay excusa.
Ojo: Nueve de cada diez dentistas recomiendan utilizar un sistema de control de versiones para no perder jamás de los jamases la versión no ofuscada de script alguno.