Contenido

LABjs, cargando javascript más rápidamente

30 nov

+ 4

Ya hemos visto en muchas ocasiones técnicas para mejorar el tiempo de carga del javascript de nuestras páginas. Todas pasan por generar dinámicamente las llamadas a los scripts desde el propio Javascript, de esta forma estamos haciendo que los ficheros se carguen de forma simultánea haciendo que la carga total de la página se reduzca.

Versión HTML

figure11
(Ver Imagen)

Versión LABjs

LABjs, es una librería que nos permitirá gestionar de forma muy intuitiva permitiéndonos cargar nuestros ficheros javascript en paralelo, minimizando el tiempo de carga.

figure31
(Ver Imagen)

// HTML
<script src="framework.js"></script>
<script src="plugin.framework.js"></script>
<script src="myplugin.framework.js"></script>
<script src="init.js"></script>

// LABjs
$LAB
.script("framework.js").wait()
.script("plugin.framework.js")
.script("myplugin.framework.js").wait()
.script("init.js");

Como podemos ver, disponemos de una serie de métodos que nos permitirán gestionar la carga de ficheros, haciendo que unos carguen después para que las dependencias estén cargadas a la hora de usarse.

Metodos de la API

  • $LAB.setGlobalDefaults():Método que nos permite definir los valores por defecto para la carga de ficheros.
  • $LAB.setOptions(): Indicamos opciones que serán pasadas en la cadena de carga.
  • $LAB.script(): Método usado para cargar los ficheros Javascript, permite encadenar varios.
  • $LAB.wait(): Método que detiene la ejecución y que permite ejecutar una funcionalidad (o cargar otro fichero).
  • Hola Andres soy un lector asiduo de tu blog, que es interesantisimo. Este post me parece barbaro… probare la libreria con el framework ExtJS, para intentar que las aplicaciones web desarrolladas con el mismo carguen mas rapido.. Te mando un abrazo desde Argentina

  • No veas como me has ayudado con ese script. Tengo un cliente que queria que la web cargase a toda leche y lo único que se me resistia era la carga de los js, que con el jquery ya se llevaba un rato y ha sido poner esto hacer un par de cambios y de 4s ha pasado a visto y no visto.

    En serio muchas gracias.

  • Pues parece que si que esta bien pero después de probarlo a mi no me ha valido…:S

    he intentado hacer la carga de un par de archivos externos (la API de googleMaps y su archivo jsapi) y me produce errores al cargarlos asincronamente :S

    será cuestión de esperar a ver si sacan otra versión que mejore esta compatibilidad :)

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.