跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

使用 Dojo 和 DB2 开发 Ajax Web 应用程序

实际案例分析

Leons Petrazickis (leonsp@ca.ibm.com), 数据库技术推广人员, IBM
Leons Petrazickis 是 IBM 的数据库技术推广人员,他的工作是编写教程和准备样例应用程序。他在跨多个平台的 Web 开发方面拥有十年的经验。他毕业于多伦多大学计算机科学专业,擅长的编程语言是 Python。

简介:  跟随本案例分析,使用 IBM® DB2® 9 for Linux®, UNIX®, and Windows®、XQuery、PHP 和 Dojo JavaScript Framework 快速创建一个优雅的、能够做出响应的 Web 应用程序。本案例学习建立在 IOD Planner 2006 基础上,这是一个用于 IBM Information On Demand 2006 Global Conference 的 Web 应用程序。学习 Ajax 方法的优点并了解如何逐步实现这种应用程序。

发布日期:  2007 年 3 月 30 日
级别: 中级

访问情况 : 5086 次浏览
评论: 

开始之前

关于本教程

本教程的目的有二 —— 展示使用 Ajax/Web 2.0 方法进行 Web 开发的优点,以及展示 DB2 9 pureXML™ 的强大功能。根据这两个目的,我结合 Information On Demand 2006 Global Conference 编写了 Information On Demand 2006 Scheduler 应用程序。这是一个简单的可用来规划会议日程的应用程序。它利用了 Ajax —— Asynchronous JavaScript and XML —— 方法来进行 Web 编程,从而实现直观简单的用户交互。它还利用了 IBM DB2 9 的快速 pureXML 功能。

图 1 演示了 IOD Planner 应用程序的开发。在后台进行了全部的加载以避免刷新延迟,并对表单字段、对话框和下拉菜单使用了丰富的部件。


图 1. IOD Planner 2006
Planner 中的搜索结果


先决条件

您应该对 Web 开发和数据库有适当的了解。教程 “DB2 XML evaluation guide”(developerWorks,2006 年 6 月)对 DB2 9 进行了很好的介绍,而 “Query DB2 XML Data with XQuery”(developerWorks,2006 年 4 月)则介绍了 XQuery。

系统需求

要部署源代码,需要 Windows 或 Linux 操作系统。在其上,需安装 Zend Core for IBM(参见 参考资料 中的下载链接)。Zend Core 很方便地捆绑了 DB2 9 Express-C 数据服务器、Apache2 Web 服务器、PHP 脚本语言、DB2 的 PHP 扩展和一个功能强大的管理控制台。


为什么使用 Ajax?


图 2. 传统的 Web 模型和 Ajax 模型
Ajax 模型在后台加载内容


Ajax 基本原理的关键原则是避免加载新的 Web 页面。相反,可以在后台加载新的内容并在现有页面中显示它。这样就避免了重新加载基本框架的浪费,而且也不需要花时间等待浏览器呈现相同的导航和设计。您的用户不会看到加载中的空页面。最终的结果是一个迅速的、响应性很好的应用程序。

使用 XMLHTTPRequest 对象向服务器发送请求,并在响应到达时对其进行异步处理。和其名字相反,该对象并不只限制于 XML。任何空白的文本格式,从 JavaScript (JSON) 到 CSV 再到预先生成的 HTML,都可以使用这种机制接收。我们选择后者 —— 在服务器中生成的 HTML。

Ajax 风格的 Web 应用程序主要包括 Bloglines、Del.icio.us、Digg、Flickr、Google Map、Gmail 和 Reddit。


为什么使用 Dojo JavaScript Framework?

在过去两年里,作为一种语言和平台,JavaScript 获得了很大程度的发展。这种语言没有正式的库、框架或 API,所以出现了一些业内支持的开源的替代选择。它们提供了方便的 Aax、丰富的小部件、数据结构、辅助函数、效果和布局帮助。Dojo 是其中一种工具箱。

Dojo 是一个开源的 JavaScript 框架,IBM、Sun、AOL、JotSpot 等都对其提供支持。Ajax for IBM WebSphere® 使用 Dojo 0.4.1。Dojo 对任何服务器端工具箱都没有限制 —— 这意味着它可与 PHP、Java、servlets、.NET 或其他任何后端结合使用。Dojo 有一个活跃的用户和开发人员社区,在 dojo 的邮件列表里面有大量的日常消息。

Dojo 具有模块化设计,根据需要可以加载额外的功能。


图 3. JavaScript 框架采用(Ajaxian.com, 2006)
43% Prototype,33% Script.aculo.us,19% Dojo,其他少于 12%,允许多种框架


图 3 所示的竞争者份额中,Dojo 是一块新的领域,并正在迅速壮大。在过去一年里,Dojo 和 Script.aculo.us 都获得了巨大市场份额增长。其中,Dojo 具有更健壮的架构和更好的业内支持。


为什么使用 DB2 9 pureXML?

需要使用一种关系数据库作为 Web 应用程序的后端。我们选择使用 DB2 Express-C,它是 DB2 9 数据服务器的一个可以免费下载、免费部署、免费发布的版本。它还具有原生 XML 功能,这种功能需要进行细化。


图 4. 组合 XML 和关系数据库的传统方法
修改过的文件,CLOB,以及解析


任何足够大的企业应用程序都希望使用 XML。通常,XML 是表示数据的最自然的形式。这意味着 XML 可以存储在文件中,或者大量存储在数据库 CLOB 中,或者解析为分离的列。

但是,在关系数据库中混合分离的 XML 文件将很难进行扩展;CLOB 中 XML 很难进行查询,而且速度缓慢;将 XML 解析为关系列意味着关系模式必须与 XML 模式同步 —— 即每一次对 XML 结构做出更改将触发对整个数据库的回归测试,这种代价是非常昂贵的。


图 5. DB2 中的原生 XML
DB2 中的原生 XML


DB2 9 解决了这种问题。使用 SQL 和 W3C 标准的 XQuery 对其原生 XML 数据类型进行查询非常简单。它可随数据库进行扩展,并且特定于 XML 的优化使得它具有比 CLOB 更好的性能。最后,它将 XML 和关系模式分离 —— 即当只改变 XML 结构时不需要对所有内容进行回归测试。


为何选择 XQuery?


图 6. XQuery 和 DB2
DB2 9 pureXML 的架构


XQuery 是从 XML 文件中查询数据的 W3C 标准。XQuery 中的 WHERE 子句与 SQL 类似,FOR 循环对于初级的程序员来说比较直观。XQuery 代码与其等价的 XSL 相比,编写起来更加快捷,更易于阅读,并且通常更友好。

FLWOR(“flower”)经常会在 XQuery 上下文中提到。它指的是 forLETORDER BYWHERERETURN 语句,这些语句是 XQuery 的基础。

关于优秀的介绍性文章,请参考文章 “Query DB2 XML Data with XQuery”。


为何选择 PHP 和 XSL?

PHP 是一种流行的并易于掌握的服务器端脚本语言。与 Java servlets 或 .NET 相比较,它具有较低的学习曲线,但同样为资深专业人员提供了功能强大的高级特性。作为一种解释性的脚本语言,它非常适用于重复开发 —— 不需要在做出个别更改后重新编译,并且能够实时看到更改代码后的效果。

无需多言,您应该将开发、测试和生产环境分离。不推荐进行即时编辑。

我们之所以选择 XSL,是因为其强大的转换功能。用过之后发现,它其实只依赖于 XQuery 。它的工具也非常优秀,代码变得更加简短也更加优雅。XQuery 是一种更加友好的、无任何副作用的语言,专门用于将一种 XML 结构转换为另一种。我们已经使用 XQuery 生成了格式良好的 XML,所以可以完全避免进行第二次转换。

1 页,共 7 | 后一页

评论



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management, Open source, Web development
ArticleID=205318
TutorialTitle=使用 Dojo 和 DB2 开发 Ajax Web 应用程序
publish-date=03302007
author1-email=leonsp@ca.ibm.com
author1-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。