Dojo中文手册
- 格式:pdf
- 大小:230.94 KB
- 文档页数:12
实战Dojo工具包
一个品质远远超出“原型建造”的Ajax库
原文链接:http://ajaxian.com/articles/dojo-in-practice/DojoToolkitInPractice.pdf
源代码下载:http://ajaxian.com/articles/dojo-in-practice/dojo-itinerary.tgz
译文链接:http://ajaxcn.org/upload/DojoInPractice.rar
作者:Dion Almaer(Ajaxian.com)
译者:李锟(ajaxcn.org)
版本号:1.0
版权声明:
本文是有版权的著作,原文的版权属于原作者所有,译文的版权属于译者所有。译者在得到
了原作者的许可后翻译了这篇文章。译文允许在不做任何改动(包括原文/译文链接、作者/
译者信息、版权声明、文章的全部内容)的情况下自由转载。内容目录
1 简介...................................................................................................................................................3
2 Dojo工具包:JavaScript开发的水槽(Kitchen Sink)................................................................3
3 设置和配置Dojo..............................................................................................................................4
3.1 选择正确的Dojo创建..............................................................................................................4
3.2 动态加载package......................................................................................................................5
3.3 定制的创建...............................................................................................................................5
4 应用:旅行路线编辑器...................................................................................................................6
5 DOM和HTML效果........................................................................................................................6
5.1 处理DOM.................................................................................................................................7
5.2 Dojo的HTML效果..................................................................................................................8
6 使用dojo.io.bind()的Ajax远程调用...............................................................................................8
6.1.1 淡出和移除........................................................................................................................9
6.1.2 使用XMLHttpRequest来告诉服务器发生了什么.........................................................9
7 拖放操作.........................................................................................................................................10
7.1.1 连接所有的天..................................................................................................................11
7.1.2 连接单个的天..................................................................................................................11
7.1.3 onLoad.............................................................................................................................11
8 结论.................................................................................................................................................12
9 作者简历.........................................................................................................................................121 简介
当你开始建造一个Ajax应用时,你很快就会遇到一些情形,让你感觉自己好像是在重新发明轮子。
大量的开发者一想到Ajax,就会直接扑向XMLHttpRequest对象,但这仅仅只是一个开始,而且是Ajax
开发中很容易的部分。
当你在建造JavaScript富客户端应用时,你会遇到大量令人烦恼的事情。浏览器的兼容性、对于降
级(degradation)的支持、混杂在一起的DOM处理、还有那些鲜血淋淋的hack技巧(例如离线存储),
所有这些事情都会冒出来。
这篇文章将会为你介绍一个远远超出对XHR进行简单封装的工具包。它是那种每个人只要开发富客
户端的Ajax应用都应该使用的工具包。没有了它,你就是一个残废的开发者,只能依靠自己的力量来蹒
跚前行。
与其列出Dojo工具包可以使用的API,我们不如考察一个简单的应用,看看在实际开发中如何使用
这个库的各个部分。
我们将会讨论:
•Dojo是什么?
•如何设置Dojo
•实际使用DOM和HTML效果
•通过dojo.io.bind()实现Ajax远程调用
•拖放(Drag and Drop)操作
让我们开始吧!
2 Dojo工具包:JavaScript开发的水槽(Kitchen Sink)
Dojo工具包是什么?它是一个框架还是一个库?这个名字本身究竟意味着什么?Alex
Russell,Dojo工具包的创建者之一,认为它是一个你可以用来建造JavaScript应用的库。
它的内涵比你可能想到的更加丰富,因为它在一个顶级项目的一组package中包含了如此众多的功
能。
Dojo中包含有很多JavaScript编写的子package,负责处理当你在建造一个JavaScript应用时通常
必须要自己来编写的基础(infrastructure)工作。它封装了跨浏览器的令人烦恼的代码,这样你就不
必担心它们会来给你捣乱。它可以帮助你更加容易地处理DOM。它在不同的浏览器中可以将
XMLHttpRequest对象降级为使用其他的远程调用机制(译者注:例如,那些不支持XMLHttpRequest对象
的浏览器),同时为你提供了最简单的和容易使用的API。
JavaScript并非仅仅是关于浏览器的,它还可以运行在不同的宿主环境中,Dojo对此也提供了支持。
如果你想要在服务器端编写JavaScript,仍然可以使用Dojo来使得代码更加简单。
为了使你获得一个关于这个框架的感性认识,我们来列出其中的package:
•dojo.collections:很有用的集合数据结构(List、Query、Set、Stack、Dictionary...)
•dojo.crypto:实现加密功能的API(Blowfish、MD5、Rijndael、SHA...)
•dojo.date:无须编写丑陋的代码来解析日期格式。
•dojo.dnd:拖放功能的辅助API。我们将要建造一个支持拖放功能的应用。
•dojo.event:事件驱动的API,支持AOP开发,以及主题/队列的功能。
•dojo.lfx:HTML和SVG效果库。我们将在例子中使用这些效果。
•dojo.animation:基于Dan Pupius在动画方面的工作
(http://pupius.co.uk/js/Toolkit.Drawing.js)的动画package(不再支持,应首
选dojo.lfx)
•dojo.fx:不再支持,应首选dojo.lfx
•dojo.io:不同的IO管道。cookie、IFrame、发布/订阅功能等等。所有神奇的Ajax工作都
在这里完成。