]> source.dussan.org Git - jquery.git/commitdiff
Ajax: remove "onunload" event handler
authorOleg Gaidarenko <markelog@gmail.com>
Thu, 2 Apr 2015 08:55:57 +0000 (11:55 +0300)
committerOleg Gaidarenko <markelog@gmail.com>
Sun, 3 May 2015 10:54:17 +0000 (13:54 +0300)
Remove hack for IE lost connections, update for it was released
by Microsoft at November 12, 2013.
See https://support.microsoft.com/en-us/kb/2905733

Ref trac-5280
Ref gh-2047

src/ajax/xhr.js

index c1aceaa4a4929d9d6d9e521d86001b694ec5bafb..545bb26c918bca15451850c31af477b4addaf0ed 100644 (file)
@@ -10,9 +10,7 @@ jQuery.ajaxSettings.xhr = function() {
        } catch ( e ) {}
 };
 
-var xhrId = 0,
-       xhrCallbacks = {},
-       xhrSuccessStatus = {
+var xhrSuccessStatus = {
                // file protocol always yields status code 0, assume 200
                0: 200,
                // Support: IE9
@@ -21,17 +19,6 @@ var xhrId = 0,
        },
        xhrSupported = jQuery.ajaxSettings.xhr();
 
-// Support: IE9
-// Open requests must be manually aborted on unload (#5280)
-// See https://support.microsoft.com/kb/2856746 for more info
-if ( window.attachEvent ) {
-       window.attachEvent( "onunload", function() {
-               for ( var key in xhrCallbacks ) {
-                       xhrCallbacks[ key ]();
-               }
-       });
-}
-
 support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
 support.ajax = xhrSupported = !!xhrSupported;
 
@@ -43,8 +30,7 @@ jQuery.ajaxTransport(function( options ) {
                return {
                        send: function( headers, complete ) {
                                var i,
-                                       xhr = options.xhr(),
-                                       id = ++xhrId;
+                                       xhr = options.xhr();
 
                                xhr.open(
                                        options.type,
@@ -84,7 +70,6 @@ jQuery.ajaxTransport(function( options ) {
                                callback = function( type ) {
                                        return function() {
                                                if ( callback ) {
-                                                       delete xhrCallbacks[ id ];
                                                        callback = xhr.onload = xhr.onerror = null;
 
                                                        if ( type === "abort" ) {
@@ -117,7 +102,7 @@ jQuery.ajaxTransport(function( options ) {
                                xhr.onerror = callback("error");
 
                                // Create the abort callback
-                               callback = xhrCallbacks[ id ] = callback("abort");
+                               callback = callback("abort");
 
                                try {
                                        // Do send the request (this may raise an exception)