使用 Ajax,您可以轻而易举地即时向用户提供反馈,而不必再耗费大量时间重新载入用户所使用的页面。本文将带领您发现视图和代理如何帮助您构建 Ajax 驱动的应用程序,并教您如何定义一个 API,使客户机和 Domino 服务器协作。
每个人都曾经使用过某种类型的 To Do 列表系统。此类系统通常包含一些必须快速、易用的数据小段。To Do 列表也是演示 Asynchronous JavaScript and XML(Ajax)技术与 Lotus Domino 的完美范例,本文将为您介绍如何使用 Ajax 设计模式来构建一个名为 ToDo-list 的 Lotus Notes 应用程序,此应用程序为用户提供其任务的即时反馈和更新。
本文为您介绍整个 ToDo-List 应用程序的创建过程,还提供了示例应用程序的下载,以帮助您按文章逐步操作。应用程序使用 Domino 代理来处理 Web 浏览器发送的 Ajax 请求,如创建和更新 Notes 文档,还使用了一个 Domino 视图来生成应用程序中使用的 XML。本文的目标读者为具备 JavaScript 和 XML 知识、有一定经验的 Notes/Domino 应用程序开发人员。
如需了解 Ajax 的更多内容,请参见本文 “参考资料” 一节,获得介绍性文章。
ToDo-list 应用程序维护一份 To Do 项目的记录,各项包含 Subject 和 Status 字段。Subject 字段保存关于各项目是什么的信息(如图 1 所示),Status 字段包含一个 0 或 1,0 表示未完成的活动,1 表示已完成活动。
图 1. Ajax 驱动的 ToDo-list 应用程序
Ajax 驱动的应用程序的力量
Ajax 驱动的应用程序可增加任何基于 Web 的应用程序的实用性,由于其额外的安全性和分类化的视图,Lotus Domino 服务器为富客户机应用程序提供了出色的存储库。
Lotus Domino 提供的设计元素使得在 Domino 平台上开发 Ajax 解决方案变得极为简单。可轻松构建支持会话(出于安全性和个性化方面的考虑)的 Domino 代理来处理您的 Ajax 提交。此外,您可配置一个 Domino 视图来提供 HTML、XML 甚至 JavaScript Serialized Object Notation(JSON)。成功的 Ajax 实现所需的一切都有。
现代 Web 浏览器和成熟的 Document Object Model(DOM)使为用户创建功能丰富的应用程序比以往任何时候都要容易。例如,我们通常会在项目中包含提前键入或建议字段,用户键入时可在其中接收到建议,以使名称查找更为方便。在另外一个项目中,我们载入了一个带有小对话框的门户页面(即 <DIV>)。各 <DIV> 使用 Ajax 调用在后端进行填充。部分对话框每隔 30 秒自动更新,为管理者提供来自 Enterprise Resource Planning(ERP)系统的新信息。
第三个示例是另外一个门户项目,其中各对话框的标题栏中带有一个小小的 “Add to my page” 图标。当用户单击此图标时,一个请求将在后台发往服务器,其中带有用户希望订阅的对话框的相关信息。服务器以如下两条消息之一:“The box is now on your personal page” 或 “You have that box already!” 进行响应。
在所有这些应用程序中,我们都必须从指定 API 入手。指定不当的 API 会毁掉整个项目。
API
在您开始为 ToDo-List 应用程序编码之前,必须决定客户机和服务器间传输的信息格式。您的系统架构可选择其所需的任意交换格式,但近来这种格式通常是 XML、JSON 或简单文本。