I have a minor issue with using "xhr" vs "ajax" as ajax > xhr
It is possible to perform ajax without using an XmlHttpRequest. For instance, in some browsers it is not currently possible to ajax upload a file. Instead, you must post to a hidden iframe. I haven't looked at the code but is possible that tapestry uses this method when posting a form to a zone. My 2p ;) On Thursday, 12 January 2012, Paul Stanton <p...@mapshed.com.au> wrote: > Igor, > > The zone wildcard idea is a bit flawed in that this 'should' work without any zones on the page whatsoever. A zone update is not required for AjaxResponseRenderer to be valid, therefore relying on a zone being present is illogical. > > While a rare case, what would be wrong with executing an eventlink (or the like) who's event handler just adds a script command to the AjaxResponseRenderer? > > tml: > > <a t:type="eventlink" event="click" xhr="true">click</a> > > java: > > private void onClick() > { > ajaxResponseRenderer.addCallback(new JavaScriptCallback() { > @Override > public void run(JavaScriptSupport javascriptSupport) { > javascriptSupport.addScript("alert('hello');"); > } > }); > } > > As I mention in the Jira issue (which you should all vote for) you could easily ensure backwards compatibility with some simple logic, ie: > isXhr = xhrParam || zoneParam != null > > The problem is that the whole reliance on ZoneManager (tapestry.js) for ajax response processing is out dated. Its left over from the initial architecture that an event was tied to a single zone for request/response handling. > > In my opinion Tapestry.ajaxRequest (or alternative) should be able to handle anything AjaxResponseRenderer can throw back at it. > > If this were fixed, it would also resolve my other pet hate - the inability to initialise an xhr request (who's handler makes use of AjaxResponseRenderer) from script without linking to a zone/ZoneManager. > > I love tapestry but I hate this feature of it. > > Regards, Paul. > > On 6/01/2012 9:22 AM, Paul Stanton wrote: > > +1 vote for this, I previously raised this last January. > > https://issues.apache.org/jira/browse/TAP5-1404 > > On 6/01/2012 7:37 AM, Igor Drobiazko wrote: > > This not a good idea, as we consequently would need to provide > AjaxActionLink, AjaxPageLink, AjaxForm, etc. > > On Thu, Jan 5, 2012 at 9:02 PM, Muhammad Gelbana<m.gelb...@gmail.com >wrote: > > Or maybe a whole new component with a whole different name ? Instead of > EventLink we can have AjaxEventLink or something..just an idea. > I bet you will find this page very interesting Lance > http://tawus.wordpress.com/2011/10/01/tapestry-5-3-new-features-part-2/ It > demonstrates many different flavors of ajax calls in tapestry. > > On Thu, Jan 5, 2012 at 8:09 PM, Dragan Sahpaski > <dragan.sahpa...@gmail.com>wrote: > > On Thu, Jan 5, 2012 at 5:35 PM, Igor Drobiazko<igor.drobia...@gmail.com > > wrote: > Maybe we should reuse zone paramater by passing a special zone id like > zone="*". There is already a special id ^, which means the first > > container > > zone. > > I like this idea. > I''m using "^" a lot so at least for me it's a good concept. > > Cheers > > > On Thu, Jan 5, 2012 at 2:40 PM, Lance Java<lance.j...@googlemail.com > > wrote: > Correct me if I'm wrong but currently, if you want an eventlink to > > use > > ajax, you must provide a "zone" parameter. This may have been fine in > > early > > versions of tapestry 5 but there are now circumstances where we want > > an > > eventlink to be done via XHR but shouldn't need to specify a zone in > > the > > tml. These include: > > 1. MultiZoneUpdate where the zone(s) are determined in the event > > handler > > 2. AjaxResponseRenderer where zone updates and javascript execs can > > be > > invoked in the event handler > > As a suggestion, eventlink could have a new boolean parameter for > > ajax > > eg