- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用 Scala、Lift 和 jQuery 构建 Comet 应用程序
创建拍卖站点
Michael Galpin, 软件架构师, eBay
Michael Galpin 从 1998 年开始从事 Java 软件开发。他目前在 Ludi Labs 工作,这是在加利福尼亚州芒廷维尤市新成立的公司。他从 California Institute of Technology 获得了数学学位。
简介:? Web 应用程序越来越高级,并且用户对它们的期望也越来越高。最高级的特性之一就是 Comet,也称为反转 Ajax(Reverse Ajax)或服务器端 push(Server-Side push)。Comet 支持基于浏览器的即时消息和实时股票行情等等。通过高级的 Ajax 库(比如 jQuery)可以在客户端轻松编写 Comet 应用程序,但在服务器上扩展它们则是一个挑战。在这个难点上,Scala 编程语言和 Lift Web 应用程序框架就可以大展身手了,并为 Comet 应用程序实现一个可伸缩的后端。在这份教程中,将使用这些技术构建一个实时 Web 拍卖站点。
开始之前
本教程面向对编写 Comet 风格的 Web 应用程序感兴趣的开发人员。了解 Web 应用程序和 Ajax 交互非常有帮助。Lift 是用 Scala 编程语言编写的,它运行在 Java? Virtual Machine 上。您不需要提前了解 Scala,但拥有关于 Java 的经验对您非常有帮助。在本文中,您会看到一些高级的 Scala,因此熟悉函数性编程语言会有帮助,比如 Haskell、OCaml 或 Lisp。您还将使用 jQuery JavaScript 库。这里涉及的 JavaScript 不是很复杂,因此熟悉基本的 JavaScript 即可。
关于本教程
Alex Russell 在 2006 年的一篇博客中首次使用术语 Comet。他将 Comet 定义为事件驱动的,其中服务器有一条开放的通信路线,可以向客户机发送数据(从 参考资料 可以阅读这个博客条目)。
在本教程中,您将使用 Scala、Lift 和 jQuery 开发一个称为 Auction Net 的 Comet 风格的 Web 应用程序。您首先设计需要构建的应用程序。设计完成之后,您需要把它拆分成不同的部分,然后探索如何使用 Lift 特性构建这些部分。
Auction Net
在阐述实现的技术细节之前,我们先看看示例应用程序的功能设计。您将构建一个称为 Auction Net 的简单电子商务站点。
功能设计
Auction Net 如其名所示,是一个拍卖 Web 应用程序。它允许卖方出售(列出)物品,以及买方购买(出价)这些物品。在拍卖 Web 应用程序中有很多潜在的复杂因素,但我尽量简化它们,从而让我们将精力集中在如何使用 Scala、Lift 和 jQuery 轻松地创建一个 Comet 风格的应用程序。当您了解使用 Lift 构建 Comet 应用程序是多么容易之后,Comet 可能就会充斥于每个角落。这类似于 Ajax 应用程序的首次登场。您常常会看到一些站点会过度使用 Ajax,并且创建出的应用程序功能不是很强。
这个站点要求人们注册应用程序,成为注册用户才能使用它。这是一个常见的功能,它不能利用上 Comet 的优势。使用典型的注册/登录流程就足够了。在用户登录之后,他们必须能够出售物品,因此您需要通过一种方法创建新的物品,并列出现有的物品。同样,这个功能也不能利用上 Comet 的交互性优势。最后,您希望用户出价购买列出的物品。在这点上,Comet 将能充分展示它的优势。您希望用户看到某个物品目前的最高竞购价,并且有用户对该物品出价时,需要自动更新出价。
现在,您对站点的运作已经有了基本的思路。您可以列出几个领域的对象:用户、物品和出价。对于每个对象,您也可以列出能够对它执行的操作。这些操作可以作为几个页面的基础,Comet 能够让某些操作的交互性大大增强。下面,我们看看如何通过 Lift 实现所有这些功能。
实现
Lift 是一个完整的 Web 应用程序库。它提供完整的模型-视图-控制器(Model-View-Controller,MVC)实现,尽管它使用的方法与大多数普通的 MVC 框架有些不同。它大量使用 Maven 来构建项目结构,从而满足依赖性。这就是为何不需要下载或安装 Scala 就可以使用 Lift 的原因 — 这一切都已经为您准备好了!这还解释了为何不需要数据库或 Web 服务器就可以使用 Lift;它使用 Maven 包含一个数据库(Apache Derby)和一个 Web 服务器(Jetty)。事实上,Jetty 非常适合
文档评论(0)