Atom 協議對讓網路資源(比如新聞、社區網站和部落格)的提供者能夠通過 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>