onSuccess and onComplete Prototype callbacks

Hi everyone,

The onSuccess callback gets fired when HTTP status code is 200, and
onComplete gets fired AFTER onSuccess/onFailure when the browser has
finished handling the request, i.e. when the DOM is ready, right?
So my question is where to put code that MUST ONLY be executed if HTTP
status code is 200 AND Ajax.Request was called with option ‘evalScripts:
true’. The code in question is attaching JS events to DOM nodes that
were
added by some server generated JS (the response of the Ajax.Request,
hence
evalScripts: true). I’m using the wonderful moodom JS library for this,
cheers you guys!. For these purposes, it seems as if onSuccess is called
too
early. It looks like the DOM is not ready at that time, and onComplete
is
the real place to put the code (it works when I put it in onComplete,
whereas it doesn’t in onSuccess). I really like the onSuccess/onFailure
callbacks, as they make my code easier to read compared to if(xhr.status

  1. {} else{} clauses in onComplete, but the latter seems to be
    unavoidable
    in situations like described above.

So, what I really want to know is actually more a question of style :slight_smile:
Where
do you guys put your code in situations like these? In particular, do
you
use both places, i.e. DOMready independent code into onSuccess/onFailure
and
DOMready dependent code into proper if branches in onComplete ? Or do
you
just put all the code into proper onComplete if branches, leaving out
onSuccess/onFailure callbacks entirely?

I would really appreciate reading how you guys tackled situations like
these

cheers
Martin G.