Skip to content
Permalink
Browse files

Simplified some of the logic for handling the ajax aborts, making sur…

…e that ajaxStop isn't called twice.
  • Loading branch information
jeresig committed Jan 12, 2010
1 parent d60b197 commit dd45c324ecf12732185656de89b40d47e3b9d3ad
Showing with 9 additions and 12 deletions.
  1. +9 −12 src/ajax.js
@@ -390,18 +390,19 @@ jQuery.extend({

// Wait for a response to come back
var onreadystatechange = xhr.onreadystatechange = function( isTimeout ) {
// The request was aborted, clear the interval and decrement jQuery.active
// The request was aborted
if ( !xhr || xhr.readyState === 0 ) {
// Opera doesn't call onreadystatechange before this point
// so we simulate the call
if ( !requestDone ) {
complete();
}

requestDone = true;
if ( xhr ) {
xhr.onreadystatechange = jQuery.noop;
}

// Handle the global AJAX counter
if ( s.global && ! --jQuery.active ) {
jQuery.event.trigger( "ajaxStop" );
}

// The transfer is complete and the data is available, or the request timed out
} else if ( !requestDone && xhr && (xhr.readyState === 4 || isTimeout === "timeout") ) {
requestDone = true;
@@ -456,15 +457,11 @@ jQuery.extend({
xhr.abort = function() {
oldAbort.call( xhr );

if ( !requestDone ) {
complete();
}

if ( xhr ) {
xhr.onreadystatechange = null;
xhr.readyState = 0;
}

requestDone = true;
onreadystatechange();
};
} catch(e) { }

0 comments on commit dd45c32

Please sign in to comment.
You can’t perform that action at this time.