Skip to content
Permalink
Browse files

Merge branch 'bug6242' of https://github.com/csnover/jquery into csno…

…ver-bug6242
  • Loading branch information...
jeresig committed Dec 6, 2010
2 parents 6c68124 + 238ac5a commit 9759e9f6bb9b85a95e0254e6b7b2ed861aee8c84
Showing with 13 additions and 6 deletions.
  1. +13 −6 src/ajax.js
@@ -195,6 +195,17 @@ jQuery.extend({
},

ajax: function( origSettings ) {
// IE8 leaks a lot when we've set abort, and IE6-8 a little
// when we have set onreadystatechange. Bug #6242
// XXX IE7 still leaks when abort is called, no matter what
// we do
function cleanup() {
// IE6 will throw an error setting xhr.abort
try {
xhr.abort = xhr.onreadystatechange = jQuery.noop;
} catch(e) {}
}

var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings),
jsonp, status, data, type = s.type.toUpperCase(), noContent = rnoContent.test(type);

@@ -406,13 +417,12 @@ jQuery.extend({

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

// 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;
xhr.onreadystatechange = jQuery.noop;

status = isTimeout === "timeout" ?
"timeout" :
@@ -454,10 +464,7 @@ jQuery.extend({
xhr.abort();
}

// Stop memory leaks
if ( s.async ) {
xhr = null;
}
cleanup();
}
};

0 comments on commit 9759e9f

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