如何使用Lift Comet自动更新和显示时间(每10秒)

时间:2014-01-31 11:28:43

标签: scala lift

我是Liftweb的新手。我在Liftweb Comet上尝试一个样本它工作正常但是时间不是在客户端UI中自动更新(手动工作正常(点击刷新按钮时))

我的示例代码: -

HTML: -

<lift:comet type="Clock" name="Other">
   Current Time: <clk:time>Missing Clock</clk:time>
</lift:comet>

彗星: -

class Clock extends CometActor {
  override def defaultPrefix = Full("clk")

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

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

  // schedule a ping every 10 seconds so we redraw
  ActorPing.schedule(this, Tick, 10000L)

  override def lowPriority: PartialFunction[Any, Unit] = {
    case Tick => {
      println("Got tick " + new Date());
      partialUpdate(SetHtml("time", Text(timeNow.toString)))
      // schedule an update in 10 seconds
      ActorPing.schedule(this, Tick, 10000L)
    }
  }
}

case object Tick

错误: -

Uncaught ReferenceError: jQuery is not defined liftAjax.js:258
Uncaught ReferenceError: jQuery is not defined cometAjax.js:39
Uncaught ReferenceError: jQuery is not defined

请建议我,我在这里打击

由于

1 个答案:

答案 0 :(得分:0)

确认这两个步骤

  1. Inject jQuery module in Boot.scala

    LiftRules.jsArtifacts = JQueryArtifacts
    JQueryModule.InitParam.JQuery=JQueryModule.JQuery172
    JQueryModule.init()
    
  2. source jquery.js

    <script id="jquery" src="/classpath/jquery.js" type="text/javascript">
    </script>