[Seaside] Re: #children and Ajax
Sebastian Sastre
ssastre at seaswork.com
Tue Jan 22 14:22:48 UTC 2008
And how your #basicRenderOn: works?
I do something similar without problems (add and remove dynamically
components N times. You allways add only? I ask because the remove is more
likely to bring that kind of trouble
cheers,
Sebastian Sastre
> -----Mensaje original-----
> De: seaside-bounces at lists.squeakfoundation.org
> [mailto:seaside-bounces at lists.squeakfoundation.org] En nombre
> de itsme213
> Enviado el: Martes, 22 de Enero de 2008 11:34
> Para: seaside at lists.squeakfoundation.org
> Asunto: [Seaside] Re: #children and Ajax
>
>
> > Without backtracking, but after some Ajax callbacks, I am trying to
> > reliably reproduce it.
>
> I am getting this "Components not found ..." in the midst of
> pure Ajax callbacks.
> Seaside2.8a1-lr.533
> Scriptaculous-lr.238
>
> Is it considered safe to dynamically add components as below?
>
> C>>children
> ^ subComponents
>
> C>>render...
> onClick: (html updater
> ...
> callback: [:r | subComponents add: C new.
> self basicRenderOn: r ])
>
> I might run through this N times successfully adding
> subcomponents, then on the (N+1) time it dies. Below is the trace:
>
> Many thanks - Sophie
>
> ========================================
>
> Subject: [BUG]WARenderContinuation>>componentsNotFound:
>
> VM: Win32 - a SmalltalkImage
> Image: Squeak3.9 [latest update: #7067]
>
> WARenderContinuation>>componentsNotFound:
> Receiver: a WARenderContinuation
> Arguments and temporary variables:
> aCollection: an Array(a MPTreeView)
> Receiver's instance variables:
> root: a WAToolFrame
> states: a WASnapshot(a WAValueHolder contents: a MPPage->a
> WAValueHolder conten...etc...
> context: a WARenderingContext
>
> WARenderContinuation>>unprocessedCallbacks:
> Receiver: a WARenderContinuation
> Arguments and temporary variables:
> aCollection: an Array(a SUCallback)
> owners: an Array(a MPTreeView)
> each: a SUCallback
> Receiver's instance variables:
> root: a WAToolFrame
> states: a WASnapshot(a WAValueHolder contents: a MPPage->a
> WAValueHolder conten...etc...
> context: a WARenderingContext
>
> WARenderContinuation>>processCallbacks:
> Receiver: a WARenderContinuation
> Arguments and temporary variables:
> aRequest: a WARequest POST /map/repo2
> lastPosition: 0
> callbackStream: a WACallbackStream
> each: a WAToolFrame
> Receiver's instance variables:
> root: a WAToolFrame
> states: a WASnapshot(a WAValueHolder contents: a MPPage->a
> WAValueHolder conten...etc...
> context: a WARenderingContext
>
> [] in WARenderContinuation>>handleRequest: {[self processCallbacks:
> aRequest]}
> Arguments and temporary variables:
> aRequest: a WARequest POST /map/repo2
> r: nil
>
>
> --- The full stack ---
> WARenderContinuation>>componentsNotFound:
> WARenderContinuation>>unprocessedCallbacks:
> WARenderContinuation>>processCallbacks:
> [] in WARenderContinuation>>handleRequest: {[self processCallbacks:
> aRequest]}
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> BlockContext>>on:do:
> WARenderContinuation>>withNotificationHandler:
> WARenderContinuation>>handleRequest:
> WARenderContinuation(WASessionContinuation)>>value:
> MPSession(WASession)>>performRequest:
> [] in MPSession(WASession)>>responseForRequest: {[self
> performRequest:
> aRequest]}
> BlockContext>>on:do:
> [] in MPSession(WASession)>>withErrorHandler: {[aBlock on:
> Error do: [:e
> | self errorHandler handleError: e. WAP...]}
> BlockContext>>on:do:
> MPSession(WASession)>>withErrorHandler:
> [] in MPSession(WASession)>>responseForRequest: {[self
> withErrorHandler:
> [self performRequest: aRequest]]}
> BlockContext>>on:do:
> WACurrentSession class(WADynamicVariable class)>>use:during:
> [] in MPSession(WASession)>>responseForRequest:
> {[WACurrentSession use:
> self during: [self withErrorHandler: [self pe...]}
> [] in MPSession(WASession)>>withEscapeContinuation: {[:cc |
> escapeContinuation := cc. aBlock value. self
> pageIntentionallyLeft...]} EscapeContinuation
> class(Continuation class)>>currentDo:
> MPSession(WASession)>>withEscapeContinuation:
> MPSession(WASession)>>responseForRequest:
> [] in MPSession(WASession)>>incomingRequest: {[self
> responseForRequest:
> aRequest]}
> BlockContext>>on:do:
> [] in WAProcessMonitor>>critical:ifError: {[value := aBlock
> on: Error do:
> anErrorBlock]}
> BlockContext>>ensure:
> [] in WAProcessMonitor>>critical:ifError: {[[value := aBlock
> on: Error do:
> anErrorBlock] ensure: [semaphore signal]]}
> [] in BlockContext>>newProcess {[self value. Processor
> terminateActive]}
>
>
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
More information about the seaside
mailing list