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.3 built on Tue Apr 05 13:24:00 PDT 2011.
Stats: Total Memory: 525,467,648 Free Memory: 472,109,400 Open Sessions: 140
Updated At: Sat Feb 04 09:47:52 PST 2012 Started At: Thu Jul 07 11:17:57 PDT 2011