Posted by & filed under Uncategorized.

Cargando javascript bajo demanda con jquery simple…

Cansado de buscar librerias de load javascript on demand y viendo que son muy pesadas programe mi funcion para propositos simples. La libreria toma el path del primer script como url para cargar los js relativos a esta.

plugin:

var using = (function(){
    var loaded = {},
        scriptUrl = $('script').attr('src').replace(/(\/|^)[\w\.\-]+$/, '$1');
 
    return function(lib, callback, scope){
        lib = $.isArray( lib ) ? lib: [ lib ];
        var cb = function() {
            lib.shift();
            loaded[this.url] = true;
            if( lib.length === 0) {
                callback.call(scope);
            }
        };
        $.each(lib, function(){
            var u = scriptUrl + this.replace(/(\.js)?$/,'.js');
            if( loaded[u] ) { cb(); }
            else { $.getScript( u, cb); }
        });
    };
})();

usage

using('milibreria.js', function(){
    alert('milibreria.js is loaded');
});
using(['milibreria1.js', 'milibreria2.js'], function(){
    alert('milibreria1.js and milibreria2.js are loaded');
});

Leave a Reply

  • (will not be published)