Lift Web Framework

Lift provides powerful facilities to build highly interactive web applications.

Ajax

Lift has powerful set of Ajax features that all you to create Ajax controls with as little as 1 line of code:
 
  ajaxButton("", s => {println("you said: "+s); SetHtml("place", <b>{s}</b>)})
  
  

Comet

Lift supports Comet-style long polling with very little work on the part of the developer. Here's the code the implements the clock that you see in this demo:
class Clock extends CometActor {
  override def defaultPrefix = Full("clk")
  // schedule a ping every 10 seconds so we redraw
  ActorPing.schedule(this, Tick, 10 seconds) 

  private lazy val spanId = uniqueId+"_timespan"

  def render = bind("time" -> timeSpan)

  def timeSpan = (<span id={spanId}>{timeNow}</span>)

  override def lowPriority = {
    case Tick =>
      partialUpdate(SetHtml(spanId, Text(timeNow.toString)))
    ActorPing.schedule(this, Tick, 10 seconds) 
  }
}
  

Lift is Copyright 2007-2010 WorldWide Conferencing, LLC. Distributed under an Apache 2.0 License.
Lift version 2.0-M3 built on Wed Mar 03 15:15:10 PST 2010.
Stats: Total Memory: 530,907,136 Free Memory: 103,746,336 Open Sessions: 174 Updated At: Wed Mar 10 22:15:41 PST 2010