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.

On Sun, Nov 8, 2009 at 11:35 PM, David Pollak <[email protected]
> 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 <[email protected]> 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 
>> <[email protected]>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 <[email protected]> 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 <[email protected]> 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

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to