Reduce CSS y JS remotamente con Reducisaurus

Beware: This post was published 7 years ago and its content may be outdated.

Ya he hablado algunas veces de comprimir los archivos CSS y JS para mejorar el rendimiento de una aplicación web, sin embargo todas aquellas veces en las que he hablado de esto, lo he hecho con la idea de comprimir los archivos en nuestro servidor y ayer, en Anieto2k publicaron un artículo comentando un nuevo servicio llamado Reducisaurus. Este servicio nos permite enlazar a un archivo al cual le indicamos mediante variables de URL el contenido que queremos comprimir, de modo que la compresión la realiza el servidor de Reducisaurus. La compresión está basada en YUI Compressor y es realmente fácil de utilizar.

Si normalmente enlazaríamos nuestros archivos así:

<script src="http://miweb.com/jquery.js"></script>
<script src="http://miweb.com/mootools.js"></script>

Con Reducisaurus lo haríamos así:

<script src="http://reducisaurus.appspot.com/js?url1=http://miweb.com/jquery.js&url2=http://miweb.com/mootools.js"></script>

Admite un par de parámetros más, como fileX (donde X es un número entero comprendido entre 1 e infninito y permite añadir código Javascript para comprimir que no esté en ningún archivo) o max-age (el cual indica el tiempo que dura la caché, en segundos, que por defecto es 600 segundos). Si queremos eliminar la caché, basta con establecer la variable de URL expire_urls a 0.

Pasando al CSS, el código funciona de la misma forma. Por ejemplo, si usamos el siguiente código para llamar a nuestro CSS:

<link rel="stylesheet" href="http://miweb.com/style.css" />
<style type="text/css">
body { background:#000; }
</style>

Con Reducisaurus lo haríamos así:

<link rel="stylesheet" href="http://reducisaurus.appspot.com/css?url1=http://miweb.com/style.css&file1=body { background:#000; }">

Al igual que con el código Javascript, podemos utilizar parámetros para controlar la caché.

Como todas las cosas, este sistema tiene unas desventajas, como por ejemplo, que dependemos totalmente del servidor de Reducisaurus, de modo que si este se desconecta, perdemos el estilo de la página. Además tengo la impresión de que ralentizará la carga, ya que el cliente cargará la página, el servidor de Reducisaurus cargará los archivos CSS y JS, comprimirá los archivos y el cliente finalmente los podrá cargar mientras que si usásemos compresión con Gzip (por ejemplo) al cargar la página el servidor los comprimiría automáticamente y el cliente no tendría que esperar a que otro servidor recibiese los archivos sin comprimir y los devolviese comprimidos. Sin embargo nunca está de más tener servicios como éste a mano.