Mejorando mBox gracias a Mootools

11 febrero, 2008

Recientemente he subido la versión 1.2 de mi plugin mBox a los repositorios de WordPress Extend.

Uno de los inconvenientes a la hora de programar plugins para WordPress que usan archivos css o javascript es que esos archivos se tienen que incluir en la función de cabecera de WordPress para que nos añada las llamadas en el head. En el plugin lo veríamos tal que así:
add_action('wp_head', 'nuestra_funcion');

Lo malo de esta llamada es que esos archivos se incluyen siempre, aunque en las entradas que estemos visualizando no se use nuestro plugin. Si estamos programando un plugin con una cantidad considerable de javascript, provoca un aumento de tiempo de carga de la web excesivo total para no ser utilizado.

En mi plugin he podido solucionar ese inconveniente haciendo uso del objeto Assets que nos ofrece el framework mootools.

Assets nos permite proporcionar una carga dinámica de imágenes, hojas de estilo y ficheros javascript. En mi caso, en la función de mi plugin, si se detecta la llamada a la galería, se inyectarán el archivo JS y el CSS necesarios.

Tan solo tendremos que crear un nuevo objeto Asset y llamar a su propiedad javascript, pasándole la ruta del archivo a incluir en la página y un identificador:
new Asset.javascript('/js/mbox.js', {id: 'mBox_script'});

Otro de los usos del objeto Asset de mootools, y puede que el más utilizado, es el método images. Images nos va a permitir hacer una pre-carga de un archivo de imagen y devolvernos el elemento img, pero sin inyectarlo en la página.
Este método dispone de las opciones onComplete y onProgress, permitiendo trabajar con el array de elementos img una vez cargados en el cache del navegador:
new Asset.images(['/images/001.png', '/images/002.gif'], {
onComplete: function(){ alert('se han cargado las imagenes!'); }
});

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.