From 00b70c75278896495365e25f0327af4a1b61acce Mon Sep 17 00:00:00 2001 From: John Resig Date: Wed, 21 Jan 2009 21:46:53 +0000 Subject: [PATCH] Landed a fix for timeouts not being aborted properly. Fixes jQuery bug #3874. --- src/ajax.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/ajax.js b/src/ajax.js index 9e30eef..8262bc7 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -380,6 +380,9 @@ jQuery.extend({ // Fire the complete handlers complete(); + if ( isTimeout ) + xhr.abort(); + // Stop memory leaks if ( s.async ) xhr = null; @@ -394,14 +397,8 @@ jQuery.extend({ if ( s.timeout > 0 ) setTimeout(function(){ // Check to see if the request is still happening - if ( xhr ) { - if( !requestDone ) - onreadystatechange( "timeout" ); - - // Cancel the request - if ( xhr ) - xhr.abort(); - } + if ( xhr && !requestDone ) + onreadystatechange( "timeout" ); }, s.timeout); } -- 1.7.10.4