with onload only firing very late:
http://dean.edwards.name/weblog/2005/09/busted/
[Before anybody suggests it, I'm aware of HTCs, but it's not always
possible to use them.]
However, "ash" comments on that page:
The 'defer' attribute is a tricky little beast. Beware of
dependencies between scripts when using the 'defer'
attribute. i.e. if the 'onload' script in file2.js depends on
functions defined in file1.js, you should avoid adding a 'defer'
attribute to the script tag for file1.js.
The problems caused are infrequent, but are easily summarized by
saying you cannot guarantee functions will be available from a
deferred script until after 'onload' fires. Which is what you were
using 'defer' for in the first place.
If everything's in one big 'defer' script, you should be fine
though.
[...]
So, it's not possible to keep separate "behaviours " in separate
scripts? Different stuff like tab switching, tree view
expansion/contraction, etc. plus application-specific code, must all
be lumped together into on huge JS file? (OK, only the code actually
used by initialisation, but I can't immediately see how that makes
things much less painful for me.) Did I understand that right?
Somebody also seemed to suggest that this technique breaks
"registerin g" onload callbacks
(eg. http://simon.incutio.com/archive/200.../addLoadEvent), but I
haven't tried to work that one through yet.
If I do understand that right, I wonder about another approach.
Somebody else on that page suggested a timer combined with a "dummy"
element at the bottom of each page. You use a timer to poll, and when
the dummy element turns up in the DOM, that's when you do your
initialisation. Does anybody here have links to discussion /
implementation( s) of that idea?
Thanks in advance for any help,
John