Thanks for you answer. i resolve my problem with callback. I put the second
load in the first loaf callback function, and works OK.

2009/12/4 Daniel Roseman <dan...@roseman.org.uk>

> On Dec 4, 9:52 am, NMarcu <marcu.nico...@gmail.com> wrote:
> > Hello all,
> >
> >     I have a strange problem with jquery load. I have this two loads
> > on a click event:
> >
> > action='first';
> > $( '#operators_list_div' ).html( '&nbsp;' ).load( '{% url
> > add_save_view %}',{'action':action, });
> > action='second';
> > $( '#address_list' ).html( '&nbsp;' ).load( '{% url add_save_view %}',
> > {'action':action,});
> >
> > On first load, I add something in db(I have more arguments send).  At
> > the end I return a template that is a table and here works fine(I see
> > what I added.
> > In second load: Ex I add something with id = 1. I build a list(initial
> > the list is from 1 to 255). After the id=1 was added, the list will be
> > from 2 to 255. If i added an id=3, the list will be 1, 2, 4, 5,...255.
> > Here I want to return another template second.html that update a drop
> > down list with the list build. Here is the problem, sometime the list
> > is correct, other times not. After I add id 1, the list is correctly
> > updated(2,3...255), but sometimes is the default list(1,2...255). The
> > strange things is that is I put an alert, between the two load, it's
> > working fine
> >
> > action='first';
> > $( '#operators_list_div' ).html( '&nbsp;' ).load( '{% url
> > add_save_view %}',{'action':action, });
> > alert('brake');
> > action='second';
> > $( '#address_list' ).html( '&nbsp;' ).load( '{% url add_save_view %}',
> > {'action':action,});
> >
> > Somebody know what I do wrong?
>
> This isn't a Django query, but I'll answer it anyway.
>
> The thing to understand about Ajax queries is that they're
> *asynchronous* (that's what the first A stands for). That means the
> main Javascript flow doesn't wait for the query to return results
> before moving onto the next statement. If you have two Ajax queries
> following each other the way you have it, there's no guarantee that
> the first one will have finished by the time you call the second one,
> leading to unpredictable results.
>
> The way to fix this is to have the second call inside the callback
> function for the first one. This callback is executed when the first
> one completes. So:
>
> ( '#operators_list_div' ).html( '&nbsp;' ).load( '{% url
> add_save_view %}',{'action':action, }, function() {
>     action='second';
>    $( '#address_list' ).html( '&nbsp;' ).load( '{% url add_save_view
> %}',
>    {'action':action,});
>  }
> );
>
> (By the way, this explains why adding an alert fixes it; the second
> Ajax call doesn't fire until you've clicked OK, by which time the
> first one has had time to complete.)
>
> --
> DR.
>
> --
>
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-us...@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>
>


-- 
All the best,

Nicolae MARCU

--

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.


Reply via email to