Hi,

> Do you have any thoughts or
> suggestions on this?

Just that it will be fragile.  The next version of Prototype might not
have respondToReadyState, or may have it with different params, or,
or, ...

Seriously, isn't it more straight-forward to do a global search and
replace changing "new Ajax.Request(" to "createAjaxRequest(" or some
such?

FWIW,

-- T.J. :-)

On Nov 13, 10:28 am, matte <[EMAIL PROTECTED]> wrote:
> Hi TJ,
>
> Based on your wrap recommendation I have extended prototype (wrapped
> Ajax.request.prototype.respondToReadyState function) without modifying
> the initialize function and source code of prototype js. Here is the
> link to code:http://pastie.org/313738.
>
> I hope this helps someone else too. Do you have any thoughts or
> suggestions on this?
>
> Thanks!
> Mert.
>
> On Nov 13, 12:16 pm, "T.J. Crowder" <[EMAIL PROTECTED]> wrote:
>
> > Hi,
>
> > > I have lots of  (I mean lots lots of) 'new Ajax.Request' calls in the
> > > application source.
>
> > Global search and replace? :-)
>
> > > Maybe extending the
> > > Ajax.Request base?
>
> > You could do that, sure, in your own copy of prototype.js; just search
> > for Ajax.Request and modify the initialize function.  You might be
> > able to do it in your own code after loading Prototype by replacing
> > the Ajax.Request.prototype.initialize implementation, but that gets
> > tricky.  Either option is (a bit) fragile, as it will require
> > maintenance when Prototype is updated.
>
> > I'd probably go with search and replace.
>
> > -- T.J. :-)
>
> > On Nov 13, 9:58 am, matte <[EMAIL PROTECTED]> wrote:
>
> > > Hi TJ,
>
> > > Thank you very much! That is what i wanted. One last question though,
> > > I have lots of  (I mean lots lots of) 'new Ajax.Request' calls in the
> > > application source. So is there a way to do this centralized instead
> > > of replacing every 'new Ajax.Request' call. Maybe extending the
> > > Ajax.Request base?
>
> > > Thanks.
> > > Mert.
>
> > > On Nov 13, 11:48 am, "T.J. Crowder" <[EMAIL PROTECTED]> wrote:
>
> > > > Hi Mert,
>
> > > > You can create a factory function for requests that inserts your
> > > > handler, something like this:
>
> > > > * * * *
> > > > function specialSuccessStuff(transport)
> > > > {
> > > >     // ...whatever your special onSuccess stuff is...}
>
> > > > function makeRequest(url, options) {
> > > >     var orig;
>
> > > >     orig = options.onSuccess;
> > > >     if (orig) {
> > > >         options.onSuccess = function(transport) {
> > > >             specialSuccessStuff(transport);
> > > >             orig(transport);
> > > >         };
> > > >     } else {
> > > >         options.onSuccess = specialSuccessStuff;
> > > >     }
> > > >     return new Ajax.Request(url, options);}
>
> > > > * * * *
>
> > > > ...then use makeRequest rather than new Ajax.Request for your actual
> > > > requests.
>
> > > > Or here's another way using Function.wrap[1]:
>
> > > > * * * *
> > > > function onSuccessWrapper(orig, transport)
> > > > {
> > > >     // ...whatever your special onSuccess stuff is...
>
> > > >     // Chain to original onSuccess handler
> > > >     orig(transport);}
>
> > > > function makeRequest(url, options) {
>
> > > >     options.onSuccess = (options.onSuccess ||
> > > > Prototype.emptyFunction).wrap(onSuccessWrapper);
> > > >     return new Ajax.Request(url, options);}
>
> > > > * * * *
>
> > > > [1]http://prototypejs.org/api/function/wrap
>
> > > > HTH,
> > > > --
> > > > T.J. Crowder
> > > > tj / crowder software / com
>
> > > > On Nov 13, 9:30 am, matte <[EMAIL PROTECTED]> wrote:
>
> > > > > Hi,
>
> > > > > I have an application that uses Ajax.Request and its onSuccess event
> > > > > handler in lots of places.
>
> > > > > I need to call a function (that will check the response) before all
> > > > > these onSuccess events fired. I tried using  Ajax.Responders.register
> > > > > with onComplete event but it fires after Ajax.Request's onSuccess
> > > > > event. Any suggestions?
>
> > > > > Thanks,
> > > > > Mert.
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to