OC,

I see, you mixed the server processing with the client side processing in the 
same timeline.

All server processing is done when the client (browser) receive the first byte 
of data. All the Javascript code execution is defined by the browser but is 
independant of the server side except if you are using Ajax components that do 
lazy loads or during Ajax refresh. In these cases, there is a completely new 
and independent RR loop involved for each request.

If you want to start some JS process, you can add the script inline at the end 
of the document of register an unload function that will be called after all 
DOM nodes are complete and ready to display. During Ajax Refresh, the unload 
handler is not called.

You need to think the Javascript part as a completely different application 
that run on it's own schedule.

Samuel


> Le 2015-02-05 à 17:01, Robert B. Hanviriyapunt <[email protected]> a 
> écrit :
> 
> I can’t imagine what “something reasonable” would be that would need to fire 
> in a subcomponent before the start of the appendToResponse (assuming that the 
> component structure is a new structure and not the same as the one that might 
> have previously fired takeValuesFromRequest).
> 
> Can you give more detail?
> 
> IMHO, I think the operation could either be better placed out of the 
> subcomponent, or, as I believe some framework components have done, insert 
> into (or modify) the current (incomplete) response html (like header script 
> tags) during the subcomponent’s appendToResponse.
> 
> --
> Robert B. Hanviriyapunt
> 
>> On Feb 5, 2015, at 8:58 AM, OC <[email protected] <mailto:[email protected]>> wrote:
>> 
>>> Hello there,
>>> 
>>> looks like not even after all those years I can properly wrap my head 
>>> around the R/R loop. I sort of thought all (sub)components get awake first; 
>>> (then other methods not important here) and then all of them get 
>>> appendToResponse.
>>> 
>>> Nope. After my code behaved weirdly, I've added logging to both awake and 
>>> appendToResponse, and with some surprise found they are in fact 
>>> interspersed like this:
>>> 
>>> ===
>>> - AWAKE DFEOForm@1460074866 IN null@null
>>> - APPEND-RESPONSE DFEOForm@1460074866 IN null@null
>>> - AWAKE lstr@911219867 IN DFEOForm@1460074866
>>> - APPEND-RESPONSE lstr@911219867 IN DFEOForm@1460074866
>>> - AWAKE SharedHeader@1055406501 IN DFEOForm@1460074866
>>> - APPEND-RESPONSE SharedHeader@1055406501 IN DFEOForm@1460074866
>>>   - AWAKE lstr@911219867 IN SharedHeader@1055406501
>>>   - APPEND-RESPONSE lstr@911219867 IN SharedHeader@1055406501
>>> ...
>>> ===
>>> 
>>> Darn.
>>> 
>>> I need to allow my subcomponent to do something reasonable before the root 
>>> page appendToResponse starts.
>>> 
>>> How could one achieve that?
>>> 
>>> Thanks a lot,
>>> OC
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com
> 
> This email sent to [email protected]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to