12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /*! jQuery Ajax Queue - v0.1.1 - 2013-01-16
- * https://github.com/gnarf37/jquery-ajaxQueue
- * Copyright (c) 2013 Corey Frang; Licensed MIT */
- (function($) {
- // jQuery on an empty object, we are going to use this as our Queue
- var ajaxQueue = $({});
- $.ajaxQueue = function( ajaxOpts ) {
- var jqXHR,
- dfd = $.Deferred(),
- promise = dfd.promise();
- // run the actual query
- function doRequest( next ) {
- jqXHR = $.ajax( ajaxOpts )
- .done( dfd.resolve )
- .fail( dfd.reject )
- .then( next, next );
- }
- // queue our ajax request
- ajaxQueue.queue( doRequest );
- // add the abort method
- promise.abort = function( statusText ) {
- // proxy abort to the jqXHR if it is active
- if ( jqXHR ) {
- return jqXHR.abort( statusText );
- }
- // if there wasn't already a jqXHR we need to remove from queue
- var queue = ajaxQueue.queue(),
- index = $.inArray( doRequest, queue );
- if ( index > -1 ) {
- queue.splice( index, 1 );
- }
- // and then reject the deferred
- dfd.rejectWith( ajaxOpts.context || ajaxOpts, [ promise, statusText, "" ] );
- return promise;
- };
- return promise;
- };
- })(jQuery);
|