On Tue, 2005-08-02 at 18:32 +0200, Sylvain Wallez wrote:
> Jason Johnston wrote:
> 
> >On Tue, 2005-08-02 at 16:57 +0200, Sylvain Wallez wrote:
> >  
> >
> >>Nono, this is smarter than that! An Ajax request is identified by the 
> >>special "cocoon-ajax" parameter. If this parameter is not present, the 
> >>BUTransformer simply remove the bu:replace elements. This is what allows 
> >>the same processing chain (except the final serializer) to be used for 
> >>Ajax and non-Ajax requests.
> >>    
> >>
> >Right, I meant that when the javascript makes an AJAX request (with the
> >cocoon-ajax header set), it checks the response for the existence of any
> >bu:replace elements, and if none are present it allows the HTML to
> >submit the form normally so the flow can continue.  But if you were to
> >manually insert a bu:replace in the template, that would mean that the
> >response to each AJAX request would always contain that bu:replace, so
> >you'd never get the empty document.
> >  
> >
> The full page reload is triggered by a special "X-Cocoon-Ajax: continue" 
> header. Reacting to an empty document would not work, as there are some 
> event listeners that do nothing. For example, we may want to check the 
> validity of an input as soon as it's entered. If the input is valid, 
> nothing special happens and the returned document is empty.

OK, I get it now.  Thanks for taking the time to explain it; I'm new to
all this and I thought I understood how it worked but obviously not.
This knowledge will definitely help with the patch I'm working on.

This is all *great* stuff, BTW. :-)

Reply via email to