Hi, I am trying to setup some basic Ajax framework, and I was thinking to use Ajax.Responders to intercept some events, but I meet the following issues : - First, it seems that the responders ignore an onSuccess() callback passed through Ajax.Responders.register(). This may be a documentation error since the "Prototype 1.6 - The Complete API Reference" says that "All callbacks in the life-cycle are available" on the Ajax.Responders.register() description (p32) but the list of Responder callbacks (p25) only lists 7 of them (not including onSuccess).
My second concern is that Responder's callback seems to be always called after the local one (the one defined in the ajax call). I wanted to implement some kind of "server throwable exceptions", which basically would allow me to return a JSON object with some attributes like {"Error":true, "Code":"ExpiredSession"...} which would be handled by the default Responder, freeing me from having to test all unexpected things in every Ajax's callback. The current behavior doesn't allow to do that easily. I do think to a solution but don't you think that for the sake of clarity those Responder callback should be renamed from "onXXX" to "onAfterXXX" since they are called after the actual onXXX callback ? (and eventually, some "onBeforeXXX" callback could be added (as well as onSuccess and onFailure). I am not very happy with the workaround I found, so feel free to give me some hints to make it better. Here it is: function ResponderOnSuccess(localOnSuccess,request,jsonObj) { if(!jsonObj) jsonObj = { "Error": true, "Code":"Unknown"}; if(jsonObj.Error) { // process error; } else { localOnSuccess(request,jsonObj); } } and for using it: new Ajax.Request('myRequest.php', { onSuccess: myCB.wrap(ResponderOnSuccess) }); or if you prefer: new Ajax.Request('myRequest.php', { onSuccess: (function(xrh,json) { // Process data here }).wrap(ResponderOnSuccess) }); Last minute idea I just had while writing: Do you think I could use the onCreate's responder to change the onSuccess by the wrapped version? Thanks for any hint, Eric --~--~---------~--~----~------------~-------~--~----~ 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 prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~----------~----~----~----~------~----~------~--~---