The release there is quite different from the version in svn, which
may be closer to what you are looking for:
http://dev.jquery.com/browser/trunk/plugins/ajaxQueue/jquery.ajaxQueue.js
The docs are all wrong, but the usage is really simple:

No ports:

$.ajax({
  mode: "abort"
});

With ports:

$.ajax({
  mode: "abort",
  port: "autocomplete"
});

Ports are useful when you don't want to cancel everything, but only a
certain type of request, like those for a autocomplete component.

Jörn

On Wed, Nov 12, 2008 at 8:20 PM, John Resig <[EMAIL PROTECTED]> wrote:
>
> Really quickly - I was wondering if this Ajax Queue plugin helped you
> at all (or if you saw it):
> http://plugins.jquery.com/project/ajaxqueue
>
> We worked on that one last year - just wondering if it helps you at
> all, before we look at other solutions.
>
> --John
>
>
>
> On Wed, Nov 12, 2008 at 11:49 AM, Ego-Ale-Sum <[EMAIL PROTECTED]> wrote:
>>
>> In my website, I'm using jQuery to handle XHR requests (using the
>> methods $.post, $.get, $.getScript and even the AJAX form plugin).
>> I wanted XHR requests to stop if new ones are made.
>> I've found a plugin named "AJAX Manager" (or something similar) for
>> that, but it was not what I was looking for: first, it supports just
>> $.get requests and it keeps all the active requests in a sort of
>> queue.
>>
>> I needed something that stopped all the previous XHR requests when a
>> new one is made.
>> I thought the best way to accomplish that was simply not to trigger
>> the callback after the request completes.
>>
>> I looked inside the jQuery library and I found that the problem could
>> not be solved with a plugin (I needed to edit the $.ajax method
>> directly).
>> So, I've realized a simple but powerful patch.
>>
>> I'm posting the patch here: I hope it will be useful.
>> Also, since I think it's a quite useful addition, I'm asking the
>> developers wheter they could add it to the trunk.
>>
>> Here's the patch (from my SVN repository):
>>
>>
>>
>> Index: jquery.js
>> ===================================================================
>> --- jquery.js   (revision 188)
>> +++ jquery.js   (revision 190)
>> @@ -2512,6 +2512,9 @@
>>  var jsc = now();
>>
>>  jQuery.extend({
>> +       // The current request
>> +       ajaxRequestId: 0,
>> +
>>        get: function( url, data, callback, type ) {
>>                // shift arguments if data argument was ommited
>>                if ( jQuery.isFunction( data ) ) {
>> @@ -2564,6 +2567,8 @@
>>                processData: true,
>>                async: true,
>>                data: null,
>> +               newRequestAbort: false,
>> +               requestId: 0,
>>                username: null,
>>                password: null,
>>                accepts: {
>> @@ -2586,6 +2591,10 @@
>>
>>                var jsonp, jsre = /=\?(&|$)/g, status, data,
>>                        type = s.type.toUpperCase();
>> +
>> +               // increment the request counter
>> +               jQuery.ajaxRequestId++;
>> +               s.requestId = jQuery.ajaxRequestId;
>>
>>                // convert data if not already a string
>>                if ( s.data && s.processData && typeof s.data != "string" )
>> @@ -2813,9 +2822,12 @@
>>                        onreadystatechange();
>>
>>                function success(){
>> -                       // If a local callback was specified, fire it and 
>> pass it the data
>> -                       if ( s.success )
>> -                               s.success( data, status );
>> +                       if(!s.newRequestAbort || s.requestId == 
>> jQuery.ajaxRequestId)
>> +                       {
>> +                               // If a local callback was specified, fire 
>> it and pass it the
>> data
>> +                               if ( s.success )
>> +                                       s.success( data, status );
>> +                       }
>>
>>                        // Fire the global callback
>>                        if ( s.global )
>> @@ -2842,7 +2854,7 @@
>>
>>        handleError: function( s, xhr, status, e ) {
>>                // If a local callback was specified, fire it
>> -               if ( s.error ) s.error( xhr, status, e );
>> +               if ( s.error && (!s.newRequestAbort || s.requestId ==
>> jQuery.ajaxRequestId) ) s.error( xhr, status, e );
>>
>>                // Fire the global callback
>>                if ( s.global )
>>
>>
>>
>>
>> Here's a test file
>>
>>
>>
>> <?php
>> if(!empty($_GET['ajax']))
>> {
>>        sleep(3);
>>        echo "Received ".$_GET['ajax'];
>>        exit;
>> }
>> ?>
>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://
>> www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
>> <html xmlns="http://www.w3.org/1999/xhtml";>
>> <head>
>> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
>> <title>Untitled Document</title>
>> <script type="text/javascript" src="app/clientscript/jquery.js"></
>> script>
>> <script type="text/javascript">
>> //<!--
>> var id = 0;
>> function theCallback(data)
>> {
>>        $("#result").append(data+"<br/>");
>> }
>>
>> function doRequest(abort)
>> {
>>        id++;
>>        if(!abort)
>>        {
>>                $.ajaxSetup({newRequestAbort: false});
>>        }
>>        else
>>        {
>>                $.ajaxSetup({newRequestAbort: true});
>>        }
>>        $.get("test.php", {ajax: id}, theCallback);
>> }
>> //-->
>> </script>
>> </head>
>> <body>
>> <a href="javascript:doRequest(true)">do request that aborts on new
>> request</a><br />
>> <a href="javascript:doRequest(false)">do request that does NOT abort
>> on new requests</a>
>> <div id="result"></div>
>> </body>
>> </html>
>>
>>
>>
>> I hope my work can help many other users that every day choose this
>> fantastic javascript framework.
>>
>> >
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to