Reworked script and xhr abort logic to take advantage of the fact jXHR.abort will complete the request itself if not done already.

This commit is contained in:
jaubourg 2011-01-13 02:05:39 +01:00
parent b07d43c649
commit 667a3b31e6
2 changed files with 36 additions and 42 deletions

View file

@ -47,7 +47,7 @@ jQuery.ajax.transport("script", function(s) {
script.src = s.url;
// Attach handlers for all browsers
script.onload = script.onreadystatechange = function( _ , statusText) {
script.onload = script.onreadystatechange = function( _ , isAbort ) {
if ( ! script.readyState || /loaded|complete/.test( script.readyState ) ) {
@ -59,10 +59,13 @@ jQuery.ajax.transport("script", function(s) {
head.removeChild( script );
}
// Dereference the script
script = 0;
// Callback
callback( statusText ? 0 : 200, statusText || "success" );
// Callback if not abort
if ( ! isAbort ) {
callback( 200, "success" );
}
}
};
// Use insertBefore instead of appendChild to circumvent an IE6 bug.
@ -70,9 +73,9 @@ jQuery.ajax.transport("script", function(s) {
head.insertBefore( script, head.firstChild );
},
abort: function(statusText) {
abort: function() {
if ( script ) {
script.onload( 0 , statusText );
script.onload(0,1);
}
}
};