Landing fixes for tickets #2935 and #2688 (Aborting ajax doesn't stop the setInterval, ajaxStop event isn't getting triggered).
This commit is contained in:
parent
464535e096
commit
0aa8d40cdf
1 changed files with 15 additions and 4 deletions
19
src/ajax.js
19
src/ajax.js
|
@ -308,10 +308,11 @@ jQuery.extend({
|
||||||
s.accepts._default );
|
s.accepts._default );
|
||||||
} catch(e){}
|
} catch(e){}
|
||||||
|
|
||||||
// Allow custom headers/mimetypes
|
// Allow custom headers/mimetypes and early abort
|
||||||
if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
|
if ( s.beforeSend && s.beforeSend(xhr, s) === false ) {
|
||||||
// cleanup active request counter
|
// Handle the global AJAX counter
|
||||||
s.global && jQuery.active--;
|
if ( s.global && ! --jQuery.active )
|
||||||
|
jQuery.event.trigger( "ajaxStop" );
|
||||||
// close opended socket
|
// close opended socket
|
||||||
xhr.abort();
|
xhr.abort();
|
||||||
return false;
|
return false;
|
||||||
|
@ -322,8 +323,18 @@ jQuery.extend({
|
||||||
|
|
||||||
// Wait for a response to come back
|
// Wait for a response to come back
|
||||||
var onreadystatechange = function(isTimeout){
|
var onreadystatechange = function(isTimeout){
|
||||||
|
// The request was aborted, clear the interval and decrement jQuery.active
|
||||||
|
if (xhr.readyState == 0) {
|
||||||
|
if (ival) {
|
||||||
|
// clear poll interval
|
||||||
|
clearInterval(ival);
|
||||||
|
ival = null;
|
||||||
|
// 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
|
// The transfer is complete and the data is available, or the request timed out
|
||||||
if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) {
|
} else if ( !requestDone && xhr && (xhr.readyState == 4 || isTimeout == "timeout") ) {
|
||||||
requestDone = true;
|
requestDone = true;
|
||||||
|
|
||||||
// clear poll interval
|
// clear poll interval
|
||||||
|
|
Loading…
Reference in a new issue