Uhm....
I'm not sure I do understand the code: it's not documented at all.
Anyways, seems like it's a queue system: requests are not in parallel,
but executed once at time. So, it's different from my code!

On 12 Nov, 20:35, "Jörn Zaefferer" <[EMAIL PROTECTED]>
wrote:
> 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.ajaxQueu...
> 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