miércoles, 26 de enero de 2011

Reduciendo todo el JavaScript

Buenas, como en anteriores ocasiones ya hablamos de como cargar javascript sin bloqueos usando Script DOM element. Hoy me gustaría enseñaros como podemos juntar todas las hojas js en una misma, siendo una una única petición de descarga y generando un único archivo comprimido y cacheado.

Se llamJSmin-php es una biblioteca de funciones que existe en PHP que facilita el trabajo.
Un ejemplo básico de como podríamos usarlo sería:

require_once("jsmin.php");
$files = glob("/js/*.js");
$js = "";
foreach($files as $file) {
  $js .= JSMin::minify(file_get_contents($file));
}
file_put_contents("/combinado.js", $js);

En el caso de no querer combinar todos los js de una misma carpeta podemos usar el siguiente método para  incluir únicamente los archivos que necesitemos.

$files = array("/js/main.js", "/js/menu.js", "/js/content.js");

De esta forma ya podemos usar el fichero generado en nuestra web. Recomendaría que esto se ejecutase de forma externa, me refiero que sería mejor incluir únicamente el fichero generado. Para no ralentizar la aplicación web obligando a ejecutar y a generar por cada visita el mismo fichero.