Welcome

首页 / 脚本样式 / Dojo Toolkit / Ajax -- 困惑者指南,第2部分:开发基于Dojo的博客阅读器

Ajax -- 困惑者指南,第2部分:开发基于Dojo的博客阅读器2010-07-04 IBM developerWorks / Gal ShachorAtom 协议对让网络资源(比如新闻、社区站点和博客)的提供者能够通过 Web 连锁其内容。在 Atom 的典型应用中,内容提供者一般会连锁一个文件或一个 Web 提要,并让其在 Web 上可用。提要的表示在 Atom Syndication Format 中定义,它提供了新添加的资源的一个概要。发布了的提要可随后由 Atom 客户软件使用,例如由博客阅读器使用,后者使用 Atom Publishing Protocol 发现新添加的内容并加以呈示。

本文通过展示如何开发一个基于 Ajax 和 Atom 的博客阅读器来进一步丰富您这方面的知识(在本期文章中,将会开发阅读器的视图和控制器组件)。您将使用 Dojo 工具箱来开发这个应用程序,而此应用程序使用 Atom Publishing Protocol 与后端 Atom 提要通信。此外,您还会使用 Dojo 存储包来保存提要订阅数据。

Dojo — 我们所选用的 Ajax 工具箱

博客阅读器应用程序基于的是 Dojo 工具箱,您可能会奇怪我们为何选用了 Dojo 而不是其他的工具箱。Book of Dojo(参见 参考资料)给出了其中的几个原因,但出于本次练习的目的,我们只列出了驱使我们使用 Dojo 的两个简单原因:

垂直集成和完成:与其他开源 Ajax 工具箱相比,Dojo 提供了最为全面和集成化的组件库。

黑盒重用:Dojo 小部件机制让开发人员可以从小部件组建新的应用程序,而无需知道其 “内幕”。这就让复杂 Ajax 应用程序的创建变得比较简单。

垂直集成和完成

Dojo 具有分层架构,其中的每一层都添加了更为先进的功能:

Dojo 核心层包含了在很多工具箱(比如 IO 和 DnD)中都存在的 基本的 Ajax 特性、跨浏览器兼容性、基本 DOM 处理等。

在 Dojo 核心层之上是 DIJIT 层,提供小部件系统以及很多小部件。

最后一层是 DOJOX,包括各种扩展,比如离线存储和跨浏览器矢量图。

Dojo 架构的各层都提供了一种综合的集成式工具箱,可以满足大多数开发需求。

黑盒重用 — 小部件

Dojo 小部件是基于 Ajax 的 UI 组件,可用一行 HTML 代码重用。比如,清单 1 给出了一个可扩展的 title 窗格小部件是如何在 HTML 页面中实例化的:

清单 1. 在 HTML 页面中 Title 窗格小部件的实例化

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type="text/javascript" src="../../dojo/dojo.js"
djConfig="parseOnLoad: true, isDebug: true"></script>
<script language="JavaScript" type="text/javascript">
dojo.require("dijit.TitlePane");
dojo.require("dojo.parser");
</script>
<style type="text/css">
@import "../../dojo/resources/dojo.css";
@import "../themes/tundra/tundra.css";
</style>
</head>
<body class="tundra">
<div dojoType="dijit.TitlePane"
title="This is the title" style="width: 300px;">
And this is the content, clicking the title
will expand/collapse me.
</div>
</body>
</html>