Skip to content

Instantly share code, notes, and snippets.

@mjschranz
Created May 18, 2012 13:59
Show Gist options
  • Save mjschranz/2725407 to your computer and use it in GitHub Desktop.
Save mjschranz/2725407 to your computer and use it in GitHub Desktop.
Hmmmph
css: function( url, exclude, callback, checkFn, error ){
var scriptElement,
interval;
checkFn = checkFn || function(){
return !!scriptElement;
};
function runCheckFn() {
interval = setInterval( function(){
if( checkFn() ){
clearInterval( interval );
if( callback ){
callback();
}
}
else {
clearInterval( interval );
if( error ){
error();
}
else if( callback ){
callback();
}
}
}, CSS_POLL_INTERVAL );
}
url = fixUrl( url );
if( !checkFn() ){
scriptElement = document.createElement( "link" );
scriptElement.rel = "stylesheet";
scriptElement.onload = scriptElement.onerror = runCheckFn;
scriptElement.href = url;
document.head.appendChild( scriptElement );
}
else if( callback ){
callback();
}
}
load: function( items, callback, error, ordered ){
if( items instanceof Array && items.length > 0 ){
var onLoad = generateLoaderCallback( items, callback );
if( !ordered ){
for( var i = 0; i < items.length; ++i ){
Loader.load( items[ i ], onLoad );
}
}
else {
var next = generateNextFunction( items, callback );
next();
}
}
else {
var item = items;
if( _loaders[ item.type ] ){
if( item.url ){
_loaders[ item.type ]( item.url, item.exclude, callback, item.check, error );
}
else{
throw new Error( "Attempted to load resource without url." );
}
}
else {
throw new Error( "Loader type " + item.type + " not found! Attempted: " + item.url );
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment