Sorry. Just reread my past post and it is indeed unclear. I will post running code tonight. I very much appreciate your help.
On Tue, Nov 10, 2009 at 1:27 AM, David Pollak <feeder.of.the.be...@gmail.com > wrote: > > > On Mon, Nov 9, 2009 at 10:10 PM, Jack Widman <jack.wid...@gmail.com>wrote: > >> The only difference between your working code and mine is that mine has a >> process in the background that is always running and puts Foo objects on a >> queue whenever they are ready. Where can I start this long running process >> so that it doesn't interfere with the lowPriority method that takes things >> off the queue and rerenders the page. I tried starting the process in its >> own Actor that I start in localSetup but it seems somehow to be blocking the >> lowPriority method from doing its thing. >> > > I have no idea what this means... sorry. > > Please post actual runnable code and we can help you debug. > > >> >> On Sun, Nov 8, 2009 at 11:35 PM, David Pollak < >> feeder.of.the.be...@gmail.com> wrote: >> >>> Jack, >>> >>> I reproduced your code and it seems to work fine. I've enclosed a >>> working copy. >>> >>> Some comments about your code: >>> >>> - The foos variable and the foo variable may be getting confused in >>> the code... the render method may be rendering the same thing based on >>> the >>> unchanging foos variable. >>> - Doing null testing is a sign that you have logic errors in your >>> code. I strongly recommend using either Box or Option for everything >>> that >>> can logically not contain a value/reference. If you're bridging out to >>> Java >>> code and are expecting null from the Java code, write a small bridge that >>> will wrapper the Java return values in Box/Option. >>> - You have a case class (Tick) that contains no parameters. Please >>> use a case object instead. >>> - Your Tick look is a spin loop. You fire a Tick message as part of >>> processing the Tick message. I would suggest that if you're polling, >>> that >>> you have a reasonable poll interval, otherwise you'll starve your CPU. >>> Further, having reRender on each loop through means that you're forcing a >>> lot of bytes over the wire rather than only doing a reRender on changed >>> values. >>> >>> Thanks, >>> >>> David >>> >>> On Sun, Nov 8, 2009 at 3:47 PM, Jack Widman <jack.wid...@gmail.com>wrote: >>> >>>> Sorry. Here it is: As I said, I know that when render is called, >>>> foo.getValue has the right value. But it does not show on the screen, >>>> unless >>>> I refresh the browser. >>>> >>>> package com.foo.comet >>>> >>>> import net.liftweb._ >>>> import http._ >>>> import js._ >>>> import JsCmds._ >>>> import net.liftweb.util._ >>>> import net.liftweb.http._ >>>> import _root_.scala.xml._ >>>> import scala.actors._ >>>> import com.authoritude.snippet._ >>>> import scala.collection.mutable.Queue >>>> import net.liftweb.http.SessionVar >>>> >>>> >>>> class MyComet extends CometActor { >>>> >>>> override def defaultPrefix = Full("auth") >>>> >>>> private var foos = FooManager.getFoos >>>> >>>> def createDisplay(foos:List[Foo]):NodeSeq = { >>>> <span id="go"><table> >>>> { >>>> for {foo <- foos} yield <tr><td>{foo.getValue}</td></tr> >>>> } >>>> >>>> </table></span> >>>> } >>>> >>>> def render = { bind("foo" -> createDisplay(foos)) } >>>> >>>> override def localSetup = { >>>> super.localSetup >>>> this ! Tick >>>> } >>>> >>>> var foo:Foo = null >>>> override def lowPriority = { >>>> case Tick => { >>>> foo=FooQueue.getLatest >>>> if (foo!=null && foo.getValue > -1) { >>>> blogs = FooManager.process(foo, foos) >>>> } else if (foo!=null){ >>>> foos = foos.remove((f:Foo)=>(f.id==foo.id)) >>>> } >>>> reRender(false) >>>> this ! Tick >>>> } >>>> } >>>> } >>>> >>>> case class Tick >>>> >>>> >>>> >>>> On Sun, Nov 8, 2009 at 5:31 AM, Timothy Perrett < >>>> timo...@getintheloop.eu> wrote: >>>> >>>>> >>>>> Without posting your code it's going to be tough to help you. >>>>> >>>>> Cheers, Tim >>>>> >>>>> Sent from my iPhone >>>>> >>>>> On 8 Nov 2009, at 08:14, jack <jack.wid...@gmail.com> wrote: >>>>> >>>>> > >>>>> > By the way, I know that when render is called, all the variables have >>>>> > the right values. I just don't see it on the screen unless I refresh >>>>> > it. >>>>> > >>>>> > On Nov 8, 3:12 am, jack <jack.wid...@gmail.com> wrote: >>>>> >> I have a CometActor. render is called when it is supposed to be but >>>>> I >>>>> >> don't see the changes. If I refresh the page at anytime, I do see >>>>> the >>>>> >> changes. Any idea what might cause this? >>>>> > > >>>>> > >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Jack Widman >>>> >>>> co-founder / cto, Authoritude, Inc. >>>> >>>> 203-641-9355 >>>> >>>> >>>> >>>> >>> >>> >>> -- >>> Lift, the simply functional web framework http://liftweb.net >>> Beginning Scala http://www.apress.com/book/view/1430219890 >>> Follow me: http://twitter.com/dpp >>> Surf the harmonics >>> >>> >>> >>> >> >> >> -- >> Jack Widman >> >> co-founder / cto, Authoritude, Inc. >> >> 203-641-9355 >> >> >> > > > -- > Lift, the simply functional web framework http://liftweb.net > Beginning Scala http://www.apress.com/book/view/1430219890 > Follow me: http://twitter.com/dpp > Surf the harmonics > > > > -- Jack Widman co-founder / cto, Authoritude, Inc. 203-641-9355 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---