从头开始学习 Dojo,第 3 部分: 利用 Dijit 组件框架打造丰富的
Dojo 工具包提供了大量的特性,这些特性节省了 Web 应用程序开发人员开发时间和工作量,使他们能够创造丰富的 Internet 应用程序。从 DOM helper 和 Ajax 到完善的 widget 库和面向对象的特性,Dojo 实际上包括您构建大规模的通过 “异步 JavaScript 和 XML” (AJAX) 提供助力的 Web 应用程序所需的一切。如果 Dojo 本身中未包含您正在寻找的功能,那么很有可能在 DojoX 中找到这些功能,DojoX 是工具包的基本或核心模块中未包含的扩展特性和实验性特性的存储库。在这个介绍如何利用 Dojo 工具包开发丰富的基于 Web 的应用程序的由 3 部分组成的系列文章中,我们将了解 Dijit 丰富的用户界面组件框架,这些框架使您能够通过最少的工作量构建强大的界面。
Dijit 是什么?Dijit 是 Dojo 工具包的富组件用户界面库。这些组件完全可以主题化,并且可以通过两种方式声明:可以使用 HTML 风格的标签以声明式方法声明,也可利用 JavaScript 以编程方式声明。这一部分将简要介绍 Dijit,介绍它提供的组件,并描述开箱即用的各种主题。
丰富的用户界面组件 Dijit 的主要特性就是它提供的丰富的用户界面组件套件。大多数 Web 应用程序开发人员都熟知基本 HTML 元素和表单元素的局限性,以及利用
除了上述列表之外,DojoX 扩展库还提供了一系列额外的组件,包括网格、图表、视频播放器、灯箱效果等。图 1 提供了多种 Dijit 组件的示例,包括按钮、对话框、选项卡容器、日历、调色板、菜单、富文本编辑器和进度条。 图 1. Dijit 组件的实际效果除了 UI 组件之外,Dijit 还提供了一系列经过改进的表单字段,这提供了比常规 HTML 表单元素更多的灵活性和功能。这些表单控件包括:
图 2 展示了部分此类表单控件的实际效果。 图 2. Dijiti 表单控件的实际效果Dijit 还包括多种布局组件,使您能够轻而易举地组织 Web 应用程序的布局。您不必再为表格或 CSS 浮动内容而烦恼,Dijit 允许您为应用程序布局定义复杂的结构。Dijit 提供的布局组件包括:
如您所见,Dijit 拥有丰富的用户界面组件,如果开发人员希望能够自行编写这类组件,则需要花费漫长的时间。利用 Dijit,您就可以缩短应用程序的开发时间,因为您不必再为设计或开发复杂的用户界面组件而烦恼。 回页首 主题在上一节中,您看到了 Dijit 用户界面组件的部分示例,所有这些示例均使用了 Dijit 附带的 “Claro” 主题。Dijit 还开箱即用地提供了其他几种主题,使您能够更好地将 Dijit 组件的样式与应用程序的风格相匹配。图 3 展示了其他 Dijit 主题的一些实际效果示例。 图 3. Tundra、Soria 和 ihilo 主题如果 Dijit 包含的主题不适合您的应用程序,那么您可以轻松定义自己的主题,并自定义所有 Dijit 组件,以便确切地满足您的需求。Dijit 主题的创建值得用单独一篇文章加以介绍,Dojo 工具包文档中提供了大量的细节。参考资料部分提供了 Dojo 文档主题部分的链接。 回页首
初识 Dijit 要创建 Dijit 应用程序,则需要包含 Dojo 库本身、您正在使用的主题的 CSS 文件,以及对您的 HTML 文档的 body 元素中的主题选择的引用。随后,还要使用 让我们首先从用于使用 Claro 主题的 Dijit 应用程序的一个基本模板开始。出于本文的目的,我将假设您正在从 Google Content Delivery Network (CDN) 加载 Dojo,而不是从您自己的服务器或计算机加载。打开您喜爱的文本编辑器,将清单 1 的内容添加到编辑器之中。 清单 1. 基本 Dijit 模板<!doctype html> <html lang="en" dir="ltr"> <head> <title>Dijit Template</title> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs /dojo/1.5/dijit/themes/claro/claro.css" /> <style type="text/css"> body,html { font-family:helvetica,arial,sans-serif; font-size:90%; } </style> </head> <body class="claro"> <!-- HTML content here --> <script src="https://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" djConfig="parSEOnLoad: true"></script> <script> dojo.require("dijit.dijit"); //Add Dijit components you are using here using dojo.require dojo.addOnLoad(function() { //JavaScript content here }); </script> </body> </html> 如您在清单 1 中所见,这里加载了来自 Google CDN 的 在您的应用程序中使用 Dijit 组件的方法共有两种。第一种方法是以声明的方式添加组件。这也就是说,添加到使用 回页首
以声明的方式使用 DijitDijit 所提供的一种其他大多数主流 JavaScript 组件库不具备的非常有用的特性就是:以声明式的方式使用 widget 的方法,换句话说,就是使用常规 HTML 元素。这种方式的一种明显的优势就是允许您使用 HTML 语法设计您的应用程序,就像在 Web 应用程序中一样,将应用程序逻辑独立放置在 JavaScript 之中。 通过这种方法使用 Dijit 非常直观。让我们来看一个创建日历组件的示例。首先,在模板的 接下来,在 请保存此文件,并将它载入您喜爱的 Web 浏览器。您应看到类似于图 4 所示的屏幕快照,非常整洁,不是吗? 图 4. Dijit 日历组件实际效果通过这种方式声明 Dijit 组件目前是将 Dojo 添加到您的应用程序之中的最便捷的方法。如果适用,您可以在其他 widget 内添加 widget(举例来说,您可以在一个 TitlePane 内添加一个调色板),甚至可以轻而易举地将事件处理程序连接到您的组件。 首先,让我们在一个 widget 内嵌套另一个 widget,如上一节所述。使用清单 2 所示的代码片段取代 HTML 部分中的日历行。 清单 2. 在一个标题窗格内添加调色板的代码片段<div dojoType="dijit.TitlePane" title="Color Picker"> <div dojoType="dijit.ColorPalette"></div> </div> 接下来,使用清单 3 中的代码取代日历的 清单 3. 更换日历的
|
描述 | 名字 | 大小 |
---|---|---|
文章源代码 | part3.source.zip | 9KB |
参考资料
学习
- 访问Dojo 工具包的首页。
- 查看一些Dojo 工具包演示。
- Dojo 工具包简介:阅读来自 Opera 开发人员网站的这篇有关 Dojo 工具包的出色简介。
- 阅读 Dojo 文档网站中的Dijit页面。
- 在 Dojo 文档网站中了解Dijit 主题和基调。
- Dojo 工具包简介,第 1 部分:设置、核心和 widget:阅读来自 Javaworld 的另一篇有关 Dojo 工具包的出色简介文章。
- Dojo 1.5:准备加强您的 Web 应用程序:通过 Sitepen 中的这篇新文章了解 Dojo 1.5 的部分新特性。
- Dojo 工具包简介:教程:阅读来自 Ajax Matters 的这份入门教程。
- 阅读 David Walsh 博客中的Dijit 的 TabContainer 布局:轻松处理选项卡内容。
- 阅读 Rob Gravelle 撰写的Dojo Dijit 和 Dojox 控件的本地化初级读物,获得利用 Dojo 的 Dijit 和 Dojox widget 本地化 Web 表单的需求概述和一般考虑事项。
- Peter Svensson 撰写的Dojo 内的 Dijit 基本知识是另一份出色的 Dijit 简介读物。
- "使用 Dojo 国际化 Web 应用程序"(developerWorks,2008 年 8 月):发现利用 Dojo 工具包的国际化特性,在 Web 站点和 Web 应用程序上下文内执行原生语言支持的一种方法。
- "利用 Dojo Toolkit 使用 web 服务"(developerWorks,2010 年 9 月):了解如何利用 Dojo 工具包使用服务,在一个 Web 页面中启用 Ajax。
- 了解来自 Douglas Crockford 的JavaScript 中的原型继承。
- 访问DojoCampus.org,阅读 Nathan Toone 有关理解 dojo.declare、dojo.require 和 dojo.provide的文章。
- 阅读 Rebecca Murphey 的Dojo Confessions (Or:How I gave up my jQuery Security Blanket and Lived to Tell the Tale),了解作者如何从 jQuery 转向 Dojo。
- Enterprise Dojo(作者 Dan Lee)展示了如何利用 Dojo 编写高度聚合的 JavaScript 代码。
- Dojo:使用 Dojo JavaScript 库构建 Ajax 应用程序,作者 James E. Harmon,Addison-Wesley Professional 出版。
- Getting StartED with Dojo,作者:Kyle Hayes 和 Peter Higgins,来自 friends of ED。
- "编写一个定制的 Dojo 应用程序"(developerWorks,2008 年 12 月):阅读这篇 developerWorks 文章,了解有关 Dojo 的更多信息。
- "使用 Dojo 开发 HTML 小部件"(developerWorks,2006 年 10 月):这篇 developerWorks 文章探讨了 Dojo 的可扩展性。
- "将 Dojo 工具包与 WebSphere Portal 配合使用"(developerWorks,2007 年 11 月):了解如何在 WebSphere Portal 应用程序内安装、配置、使用和利用 Dojo 工具包。
- developerWorks 的developerWorks 中国网站 Web 开发专区专门提供有关各种基于 Web 的解决方案的文章。
- 查看HTML5 专题,了解更多和 HTML5 相关的知识和动向。
获得产品和技术
- 下载Dojo 工具包。本文中使用的是版本 1.5。
- 访问Dojo Toolkit API 文档。
- 获取Firefox。
- 获取Firebug。
- IBM - Dojo 扩展样例:可以利用 Dojo 扩展特性集,启用一个 IBM WebSphere Portlet Factory 模型来利用 Dojo JavaScript 工具包提供的功能。
- 下载IBM 产品评估试用版软件,并开始使用来自 DB2、Lotus、Rational、Tivoli 和 WebSphere 的应用程序开发工具和中间件产品。
讨论
- 加入developerWorks 中文社区。查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。
- 迅速获得问题的解答:访问Web 2.0 Apps 论坛。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!