Rendering components in ajax

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Rendering components in ajax

Esteban A. Maringolo
Hi,

I'm having a weird system lock-up situation with a component I render
via JQLoad. And I started wondering if I'm doing something not
appropriate in terms of seaside component rendering.

tl;dr:
I don't know the possible unwanted side effects and constraints of
doing stuff like:
... (html jQuery: #mainContent) ajax load: [:ajaxHtml | ajaxHtml
render: ComponentB new ]


Long question:
Basically I have an ajaxified component A, which renders a ComponentB,
which in turns have javascript event handlers to do the same thing
with a ComponentC, it is... in ComponentB I also have a JS event
handler doing something like:

... (html jQuery: #detailView) ajax load: [:ajaxHtml | ajaxHtml
render: ComponentC new ]

ComponentC has some JS callbacks too, to perform some xhr calls to the
server, etc.

So far it works, but as said I don't know how this actually DOES work,
because I can't see the JavaScript code of ComponentB and ComponentC
in the Chrome DevTools, and I don't know if I'm leaking callbacks
(attached to JS events) that will never be called in the server side.

But what really is confusing me, is why if add a form (WAFormTag or
TBSFormTag) to ComponentC, it locks up the image while rendering
ComponentC.
I don't know why this is so, but commenting out the rendering of the
form keeps everything working as described above.

Any clues?

Thank you!

Esteban A. Maringolo
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Rendering components in ajax

sebastianconcept@gmail.co
cheap tip: sounds like you have a message send to itself somehow

sebastian

o/

> On 21/07/2014, at 11:45, "Esteban A. Maringolo" <[hidden email]> wrote:
>
> Hi,
>
> I'm having a weird system lock-up situation with a component I render
> via JQLoad. And I started wondering if I'm doing something not
> appropriate in terms of seaside component rendering.
>
> tl;dr:
> I don't know the possible unwanted side effects and constraints of
> doing stuff like:
> ... (html jQuery: #mainContent) ajax load: [:ajaxHtml | ajaxHtml
> render: ComponentB new ]
>
>
> Long question:
> Basically I have an ajaxified component A, which renders a ComponentB,
> which in turns have javascript event handlers to do the same thing
> with a ComponentC, it is... in ComponentB I also have a JS event
> handler doing something like:
>
> ... (html jQuery: #detailView) ajax load: [:ajaxHtml | ajaxHtml
> render: ComponentC new ]
>
> ComponentC has some JS callbacks too, to perform some xhr calls to the
> server, etc.
>
> So far it works, but as said I don't know how this actually DOES work,
> because I can't see the JavaScript code of ComponentB and ComponentC
> in the Chrome DevTools, and I don't know if I'm leaking callbacks
> (attached to JS events) that will never be called in the server side.
>
> But what really is confusing me, is why if add a form (WAFormTag or
> TBSFormTag) to ComponentC, it locks up the image while rendering
> ComponentC.
> I don't know why this is so, but commenting out the rendering of the
> form keeps everything working as described above.
>
> Any clues?
>
> Thank you!
>
> Esteban A. Maringolo
> _______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Rendering components in ajax

Esteban A. Maringolo
2014-07-21 14:03 GMT-03:00 Sebastian Sastre <[hidden email]>:
> cheap tip: sounds like you have a message send to itself somehow

How so?

However, after checking for what you said I found I was passing self
as the argument to the #with: message, using parenthesis instead of
brackets (passing self instead of a closure).

I had:
html tableData
  id: 'justification';
  with: (self model justification
     ifNil: [ self renderJustificationEditorOn: html ]
     ifNotNil: [ :j | j name ] )

Instead of:
html tableData
  id: 'justification';
  with: [self model justification
     ifNil: [ self renderJustificationEditorOn: html ]
     ifNotNil: [ :j | j name ]]


Regards!
_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside