[Seaside] Re: Can't get PTPeriodical to update

Nick Brown nickbrown at fastmail.fm
Mon Aug 13 16:41:23 UTC 2012


Thanks John, that works fine, and good catch on the class initialization
- force of habit steering me wrong.

Cheers,
Nick

John McKeon writes:

> 
> 
> Hi Nick
> I found it works if I remove the "second" i.e. frequency: 1;
> In a workspace you can print "1 second" to see why it probably causes trouble.
>  
> Also, you do not want to send super initialize in a *class* initialize method. Just "one of those things". You can probably search the list archives to get a better explanation.
>  
> Happy Trails
> John
> 
> On Mon, Aug 13, 2012, at 03:19 PM, Nick Brown wrote:
> > Hello folks.
> > 
> > I'm modifying a seaside application of mine so that parts of the UI will
> > periodically poll to see if anything's changed. I had a look at the
> > relevant section of the online seaside book, and it seems like
> > PTPeriodical is exactly what I want. Unfortunately I can't even get the
> > book's code example to work for me, so hopefully somebody can tell me
> > what I'm doing wrong.
> > 
> > I'm using the current Seaside/Pharo v3.0.7 one-click image from
> > seaside.st, and current stable releases of Firefox and Chrome (on
> > Windows). The following, applied to a fresh image, illustrates my
> > problem:
> > 
> > I create a WAComponent subclass, called MyTest.
> > 
> > I give it a class initialization method as follows:
> > 
> > initialize    
> > 	super initialize.
> > 	(WAAdmin register: self asApplicationAt: 'mytest')
> > 		addLibrary: PTDeploymentLibrary;
> > 		addLibrary: SUDeploymentLibrary.
> > 
> > (taken from
> > http://book.seaside.st/book/web-20/scriptaculous/frameworks/library )
> > And renderContentOn: as follows:
> > 
> > renderContentOn: html
> > 	html div
> > 		script: (html scriptaculous periodical
> > 			frequency: 1 second;
> > 			callback: [ :ajaxHtml | ajaxHtml render: Time
> > 			now ]
> > 		);
> > 		with: Time now.
> > 		
> > (taken from
> > http://book.seaside.st/book/web-20/scriptaculous/ajax/background )       
> > 
> > I manually call the class initialzation method to register the
> > application, then visit it in a browser. I can see that the time does
> > update, but only once. Wireshark confirms only a single XMLHttpRequest
> > is coming back from the browser. 
> > 
> > I'm afraid my Javascript debugging skills are largely non-existant, but
> > certainly the browser's JS console shows no errors or warnings.
> > 
> > I've tried explicitly calling #start on the PTPeriodical instance, in
> > which case I then get two XMLHttpRequests back from the browser in quick
> > succession, but still no ongoing periodical updates.
> > 
> > Grateful for any advice.
> > 
> > Cheers,
> > Nick Brown


More information about the seaside mailing list