【问题标题】:How to develop ajax web applications in Scala?如何在 Scala 中开发 ajax Web 应用程序?
【发布时间】:2011-10-06 11:58:27
【问题描述】:

我正在寻找一个面向对象的 Web 框架来在 Scala 中开发 Ajax 应用程序。 所以,理想情况下,我希望有类似 GWT 的东西,但不混合 Java(客户端代码)和 Scala(服务器代码)。

下面是一个简短的例子,说明 Scala 如何使用标签和列表创建垂直布局:

val label = new Label("nothing selected")
val list = new ListView("item1", "item2") onSelection { value => label.text = value }
pageContent = VerticalLayout(label, list)

实际上,这几乎是 Scala Swing 代码。但是为什么不为 Web 应用程序选择相同的语法呢?

对于Can Scala be used to write GWT applications? 臭氧的问题,建议使用scalagwt 项目。该项目看起来非常有前途。但是,它仍处于早期阶段,还不支持客户端-服务器通信(据我所知)——我的网络应用程序依赖于它。

其他人建议使用 lift 框架,我想知道 lift 是否允许以与 GWT 可能的类似的面向对象方式开发 Ajax 应用程序。我不需要将客户端代码编译成 Java Script 的特性,这样客户端应用程序甚至可以在不与服务器通信的情况下完全运行。相反,我不介意浏览器中的每个操作都会导致对服务器的 Ajax 请求,并且服务器执行相应的操作并将 JavaScript 命令发送回客户端以更新网页的某些部分(例如,用内容填充表 X是)。一个由多个 UI 组件组成的设计良好的 API 不仅可以用来隐藏这些组件的 HTML 定义,还可以用来隐藏用户在 Scala 代码中更新 UI 组件时在后台执行的 JS 更新命令(例如lable.text = ...)。是否有用于提升的模块或替代的 Web 框架提供这种面向对象的 Web 应用程序定义?

【问题讨论】:

  • Lift AJAX 支持以功能性的方式做到这一点(即使我建议你不要那样做 AJAX)

标签: ajax oop scala lift web-frameworks


【解决方案1】:

也许您应该看看Vaadin(一个基于 GWT 的框架,具有丰富的 UI 组件),尤其是它的 Scala 支持here

【讨论】:

  • 非常感谢!这似乎是我正在寻找的框架。
  • 我们还在考虑为 Vaadin 本身添加特定的 Scala 支持。到目前为止,这是公司内部的一个非官方项目,但我们已经有了一些代码。来源和讨论(请参与!)在这里:vaadin.com/forum/-/message_boards/view_message/530126
【解决方案2】:

我也将 Vaadin 与 Scala 一起使用 - 它运行良好。

【讨论】:

    猜你喜欢
    • 2010-10-17
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 2010-11-19
    • 2010-11-29
    相关资源
    最近更新 更多