Skip to content

Instantly share code, notes, and snippets.

@avernet
Created June 8, 2012 01:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save avernet/2892778 to your computer and use it in GitHub Desktop.
Save avernet/2892778 to your computer and use it in GitHub Desktop.
jQuery to load all the scripts asynchronously, in the order they are specified
@@ -5980,9 +5980,11 @@ jQuery.fn.extend({
}
}
+ (function loadScripts() {
if ( scripts.length ) {
- jQuery.each( scripts, evalScript );
+ evalScript(scripts.shift()).done(loadScripts);
}
+ })();
}
return this;
@@ -6422,20 +6424,23 @@ jQuery.extend({
}
});
-function evalScript( i, elem ) {
+function evalScript( elem ) {
+ var deferred;
if ( elem.src ) {
- jQuery.ajax({
+ deferred = jQuery.ajax({
url: elem.src,
- async: false,
+ async: true,
dataType: "script"
});
} else {
+ deferred = jQuery.Deferred().resolve();
jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
}
if ( elem.parentNode ) {
elem.parentNode.removeChild( elem );
}
+ return deferred;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment