Sha256: 7c6682eb5d802633b0706573d090ac2217c9b2e51cf0c1e6461e0ea3512a3b96

Contents?: true

Size: 1.87 KB

Versions: 50

Compression:

Stored size: 1.87 KB

Contents

/*
 * jQuery AjaxQ - AJAX request queueing for jQuery
 *
 * Version: 0.0.1
 * Date: July 22, 2008
 *
 * Copyright (c) 2008 Oleg Podolsky (oleg.podolsky@gmail.com)
 * Licensed under the MIT (MIT-LICENSE.txt) license.
 *
 * http://plugins.jquery.com/project/ajaxq
 * http://code.google.com/p/jquery-ajaxq/
 */

jQuery.ajaxq = function (queue, options)
{
	// Initialize storage for request queues if it's not initialized yet
	if (typeof document.ajaxq == "undefined") document.ajaxq = {q:{}, r:null};

	// Initialize current queue if it's not initialized yet
	if (typeof document.ajaxq.q[queue] == "undefined") document.ajaxq.q[queue] = [];
	
	if (typeof options != "undefined") // Request settings are given, enqueue the new request
	{
		// Copy the original options, because options.complete is going to be overridden

		var optionsCopy = {};
		for (var o in options) optionsCopy[o] = options[o];
		options = optionsCopy;
		
		// Override the original callback

		var originalCompleteCallback = options.complete;

		options.complete = function (request, status)
		{
			// Dequeue the current request
			document.ajaxq.q[queue].shift ();
			document.ajaxq.r = null;
			
			// Run the original callback
			if (originalCompleteCallback) originalCompleteCallback (request, status);

			// Run the next request from the queue
			if (document.ajaxq.q[queue].length > 0) document.ajaxq.r = jQuery.ajax (document.ajaxq.q[queue][0]);
		};

		// Enqueue the request
		document.ajaxq.q[queue].push (options);

		// Also, if no request is currently running, start it
		if (document.ajaxq.q[queue].length == 1) document.ajaxq.r = jQuery.ajax (options);
	}
	else // No request settings are given, stop current request and clear the queue
	{
		if (document.ajaxq.r)
		{
			document.ajaxq.r.abort ();
			document.ajaxq.r = null;
		}

		document.ajaxq.q[queue] = [];
	}
}

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
piggybak-0.7.7 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.7.6 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.7.5 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.34 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.7.4 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.7.3 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.7.2 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.7.1 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.7.0 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.33 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.32 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.31 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.30 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.29 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.28 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.27 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.26 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.25 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.24 app/assets/javascripts/piggybak/jquery.ajaxq.js
piggybak-0.6.23 app/assets/javascripts/piggybak/jquery.ajaxq.js