IBM 致力于启动新 Open Ajax Initiative 的目的是希望通过 Eclipse Foundation 增加对强大 Web 编程技术的支持。为了帮助开发人员为使用新工具集做好预备,本文介绍了两种现有的运行时工具 Dojo 和 Zimbra,在 Eclipse 的 Ajax Toolkit Framework (ATF) 将支持他们。
Open Asynchronous JavaScript and XML (Ajax) Initiative 背后的合作伙伴正在通过构建一种开发人员可以协作的开放平台来加强社区。Initiative 的创始成员,其中包括 BEA Systems、Borland Software、The Dojo Foundation、The Eclipse Foundation、Google、IBM、Laszlo Systems、Mozilla、Novell、Openwave Systems、Oracle、Red Hat、Yahoo!、Zend Technologies 和 Zimbra,意识到引入新工具到正在成长的 Ajax 开发人员社区的巨大重要性。Initiative 将范围广泛的一系列工具放到正在将响应性用户界面 (UI) 构建到新环境和现有环境的人们手中。Eclipse 中的统一界面和高级调试能力为社区带来了企业级编码环境。Eclipse 的 ATF 将提供从 Dojo 和 Zimbra 对工具包的轻易访问。
Initiative 成员相信,Open Ajax 的主要后盾可能是它驱动 Web 在其中仍有生命力这一消息的引爆点。Open Ajax Initiative 正在为 Web 的健康做出积极的努力。
注重:参阅 参考资料 中解释 Open Ajax Initiative 的新闻稿。
Eclipse ATF
Eclipse Foundation 已经成为开放源码开发和强大应用程序框架的航标。Eclipse 是基于 Java™ 的开放源码平台,它可以完全扩展并部署在每个主要平台上。各种范围广泛的插件和工具均可用。
作为 Open Ajax Initiative 的一部分,Eclipse Foundation 正在构建 ATF,它将为运行时环境(比如 Dojo 和 Zimbra)提供可扩展框架。ATF 作为 Open Ajax Initiative 的一部分,扮演着中心组件统一工具的角色。ATF 的早期版本可从 IBM alphaWorks(参见 参考资料)获得。
基于 Eclipse Web Tools Project,ATF 提供用于构建独立开发环境 (IDE) 的工具,包括运行时语法检查等特性,并嵌入 JavaScript 调试器、Document Object Model (DOM) 浏览器和 Mozilla Web 浏览器。ATF 为传统的特性松散的开放源码开发工具提供了完全的企业风格的开发环境,许多开发人员在该环境中工作感到轻松安闲。本教程重点介绍 Dojo 和 Zimbra,因为它们是目前可用的两个最有能力最成熟的 Ajax 工具。图 1 展示了 initiative 的组件以及 ATF 如何装配。
图 1. Open Ajax Initiative 组件

Dojo
假如打算采用 Open Ajax Initiative 中使用的工具,则应熟悉 ATF 将支持的工具包,比如 Dojo 和 Zimbra。
Dojo 是一个社区项目,设计目的在于通过构建标准 JavaScript 库,将 JavaScript 和 Dynamic Hypertext Markup Language (DHTML) 的努力统一为单个方向。社区意识到没有人们的合作不会走得太远,因此三个独立的前辈工具包被统一组成 Dojo Foundation,它拥有并维护代码。Dojo 具有多个可选软件包,其中包括 Ajax 版本、I/O 版本和 “Kitchen Sink” 版本(该版本包括整个工具集合)。
入门 Dojo 只需下载下列五个版本之一:
Ajax — 使用 Ajax 版本创建带有同步 I/O (XmlHttp) 的应用程序,集成复杂的可视效果,并使用面向方面的事件系统。 I/O (XmlHttp) — I/O 版本是用 dojo.io.bind 构建的,所以可以为异步 I/O 使用 XmlHttp 层。 Event I/O — 该版本包括 Dojo 的面向方面事件系统和 XmlHttp 层。 Widgets — 该版本包括与小部件实现松散耦合的 HTML 和 Cascading Style Sheet (CSS) 模板能力,提供明确分离的样式、内容和逻辑。 Kitchen Sink — 该版本包括所有 Dojo 库。安装 Dojo
选择合适的 Dojo 版本,下载,并解压软件包。将下列文件移动到 Web 根目录(为了示例目的将添加 helloworld.html 文件):
dojo.js iframe_history.html src(目录) helloworld.html使用指向 Dojo 文件的路径添加单个行到 .html 文件中:
<script type="text/javascript" src="path/to/dojo/dojo.js"></script>现在可以在 JavaScript 中随意下载 Dojo 库和小部件(参阅 参考资料 获得具体介绍)。
简单的 Dojo 示例
现在尝试一个简单的示例,它在您每次按下按钮时通过调试过程输出 “Hello World!”。我们将在本例中编辑 helloworld.html。清单 1 所示代码的初始部分设置 dojo.js 的路径,并打开调试模式以便测试您的输出。
清单 1. 输出 “Hello World!” 的简单示例
<html>
<head>
<script type="text/javascript">
djConfig = { isDebug: true };
<script>
<script type="text/javascript" src="./dojo.js"></script>使用带有 “事件” 的Button2小部件调用helloPressed函数:
清单 2. 使用带有 “事件” 的 Button2 小部件调用 helloPressed 函数
<!-- DOJO EXECUTION -->
<script type="text/javascript">
dojo.require("dojo.widget.Button2");
dojo.require("dojo.event.*");helloPressed函数仅调用dojo.debug以输出 “Hello World!” 消息:
function helloPressed()
{
dojo.debug('Hello World!');
}下面是init函数,该函数将helloButton与 Dojo 小部件相关联。第二行指明在您单击 Press Me 时应调用helloPressed函数。
function init()
{
var helloButton = dojo.widget.byId('helloButton');
dojo.event.connect(helloButton, 'onClick', 'helloPressed');
} 下一行在初始页面加载时运行init函数: