1.Dojo工具包:
• 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在动画方面的工作.
• dojo.io:不同的IO管道。cookie、IFrame、发布/订阅功能等等。所有神奇的Ajax工作都
在这里完成。
• dojo.lang:对于整个JavaScript环境进行增强的功能。包括你所希望拥有的很多特征,例
如mixin、基于闭包(closure)的函数,以及大量的其他功能。
• dojo.logging:提供日志功能的框架
• dojo.math:数学函数(曲线、点、矩阵)
• dojo.reflect:提供反射功能的函数库
• dojo.rpc:与后端服务(例如理解JSON语法的Web服务)进行通信
• dojo.storage:将数据保存在本地存储中(例如,在浏览器中利用Flash的本地存储来实现)
• dojo.string:现在你可以对字符串进行如下的处理,修整、转换为大写、编码、esacpe、填
充(pad)等等。
• dojo.undo:用来撤销用户操作的栈管理器
• dojo.uri:处理URI的函数库
• dojo.widget:一个widget框架,允许你建造可重用的HTML/JavaScript widget,可以与简
单的HTML标记共同使用(例如,<div class=”dojo-MyWidgetType”>)。支持基于标记的应用开发(例如:XAML、XUL)
• dojo.xml、dojo.dom:帮助你处理DOM的辅助函数,以及其他的XML辅助函数。
• dojo.style:CSS功能,例如访问style的大小、与浏览器的盒模型配合工作
2. 设置和配置Dojo
①动态加载package:
<script type="text/javascript">
dojo.require("dojo.dnd.*");
dojo.require("dojo.event.*");
dojo.require("dojo.lfx.*");
</script>
3. dojo.event.connect:绑定指定的方法到指定的对象的方法上
简单绑定1
function doOnClick1(){ alert( "Clicked!");}
dojo.event.connect(dojo.byId("inputTest"),"onclick","doOnClick1");
简单绑定2
obj = { doOnClick2: function(){ alert("Clicked!");}}
dojo.event.connect(dojo.byId("inputTest"),"onclick",obj,"doOnClick2");
connect可以对任何对象的方法进行绑定,而不是只能针对DOM对象
dojo.event.connect(obj,"doOnclick2","doOnClick1"); //在调用obj.doOnclick2()后调用doOnClick1()
★dojo.event.connectBefore: dojo.event.connect默认是后绑定,connectBefore则是早绑定,绑定的方法将在指定方法前执行,用法与connect一致. connectOnce就是指保证只绑定一次,来避免重复绑定会导致的重复执行的问题. dojo.event.disconnect:解除绑定,调用参数与connect一致,即可解除之前的绑定操作
4.
★ dojo.event.log:在执行指定对象的指定方法后自动记录日志
★dojo.event.kwConnect: 可以做到更加灵活的绑定,比如可以设置延迟执行绑定
dojo.event.kwConnect({
srcObj: dojo.byId("inputTest"),
srcFunc: "onclick",
adviceObj: obj,
adviceFunc: "doOnclick2",
type: "before", //默认为"after",可选: "before", "around",注意:type是用来决定adviceFunc的行为的,如果为"around",则aroundFunc将失效
aroundObj: null,
aroundFunc: null, //如果指定了aroundFunc,则其将对adviceFunc进行拦截,但是当type为 "around"时,则aroundFunc将不会执行
once: false, //默认为false,允许重复绑定
delay: 3000, //延时3秒后执行adviceFunc
rate: 0, //这个从源代码没有看懂起什么作用
adviceMsg: false //这个从源代码没有看懂起什么作用
});
kwDisconnect用来解除使用kwConnect指定的绑定
5.dojo.event.topic
Topic机制与Advice机制都能够实现事件的绑定,但是显然,Topic更适合处理多重绑定。
发布主题,然后由用户订阅的机制就是一个典型的观察者模式
★dojo.event.topic.registerPublisher:注册主题发布器
dojo.event.topic.registerPublisher("myTopic", obj, "doOnClick2");
★dojo.event.topic.subscribe: 订阅主题
dojo.event.topic.subscribe("myTopic", "test"); //执行obj.doOnClick2()以后会自动执行test()
★dojo.event.topic.unsubscribe:取消订阅主题
★dojo.event.topic.destroy:删除主题,此主题所有的订阅都将失效
6. 模块:dojo.event.browser
★dojo.event.browser.addListener:增加监听器
★dojo.event.browser.removeListener: 清除监听器
★dojo.event.browser.callListener: 调用监听器
★dojo.event.browser.stopPropagation: 阻止Event传播
7. 模块:dojo.string.common / dojo.string
★dojo.string.trim 去掉字符串的空白
★dojo.string.trimStart 去掉字符串开头的空白
★dojo.string.trimEnd 去掉字符串结尾的空白
★dojo.string.repeat 生成由同一字符(串)重复组成的字符串
dojo.string.repeat("1234", 3, "-"); //will return "1234-1234-1234"
★dojo.string.pad 使用字符补齐字符串
dojo.string.pad("100", 6, "0", 1);//will return "000100"
dojo.string.pad("100", 6, "0", -1);//will return "100000"
★dojo.string.padLeft 使用字符补齐字符串开头
★dojo.string.padRight 使用字符补齐字符串结尾
8. 模块:dojo.lang.common / dojo.lang
★dojo.lang.mixin 将一个对象的方法和属性增加到另一个对象上
var s1 = {name: "TestObj", test1: function(){alert("this is test1!");}}
var s2 = {value: 1000, test2: function(){alert("this is test2!");}}
var d = {};dojo.lang.mixin(d, s1, s2); //执行后d就具备了s1和s2的所有属性和方法d.test1();
★dojo.lang.extend
为指定类的原型扩展方法与属性
TestClass = function() {};
dojo.lang.extend(TestClass, {name: "demo", test: function(){alert("Test!");}});
var o = new TestClass(); //TestClass本来是没有test方法的,但是extend以后就有test方法了o.test();
★dojo.lang.find=dojo.lang.indexOf 查找指定对象在指定数组中的位置
★dojo.lang.findLast=dojo.lang.lastIndexOf 查找指定对象在指定数组中的位置,从后往前查
★dojo.lang.inArray 查找指定对象是否在指定数组中
★dojo.lang.isObject 判断输入的类型是否为对象
★dojo.lang.isArray 判断输入的类型是否为数组
★dojo.lang.isFunction 判断输入的类型是否为函数
★dojo.lang.isAlien 判断输入的类型是否为系统函数
★dojo.lang.setTimeout 延迟指定时间后执行指定方法
★dojo.lang.firstValued 返回第一个存在定义的参数
★var a;dojo.lang.firstValued(a,2,3); //will return 2
9. 模块:dojo.lang.array
★dojo.lang.map 调用指定的方法处理指定的数组或字符串
dojo.lang.map([1,2,3,4,5], function(x) { return x * x;}); //will return [1,4,9,16,25]
★dojo.lang.forEach 遍历指定的数组或字符串,并对其中的元素调用指定的方法
★dojo.lang.every 检查指定的数组是否全部满足指定方法的条件
★dojo.lang.some 检查指定的数组是否部分满足指定方法的条件
★dojo.lang.filter 根据指定的方法来过滤指定的数组
★dojo.lang.unnest 把指定的参数或数组转换为一维数组
dojo.lang.unnest(1, [2, [3], [[[4]]]]); //will return [1, 2, 3, 4]
★dojo.lang.hitch 将指定的方法挂在指定的对象下并返回该方法
func = {test: function(s) {alert(s)}};
dojo.lang.mixin(func, {demo: dojo.lang.hitch(func, "test")});
func.demo("demo and test are same method");
★dojo.lang.forward 返回自身对象的指定名称的方法引用
★dojo.lang.curry
★dojo.lang.curryArguments 与dojo.lang.curry类似,但是可以选择忽略掉前n个参数
function add(a, b) { return a + b; }
dojo.lang.curryArguments(null, add, [1,2,3,4,5], 2); //will return 7 (= 3 + 4)
分享到:
相关推荐
Dojo 是一个功能丰富的 JavaScript 库,它提供了一系列模块化、面向对象的工具,用于构建高性能的 Web 应用程序。在 Dojo 中,模块和包...通过深入学习和理解这些模块和包,开发者可以构建高效、健壮的 Web 应用程序。
Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,包括AJAX、DOM操作、动画...在“dojo学习笔记”中,你可能找到了关于这些概念的详细讲解和实践案例,这对理解和掌握Dojo技术体系非常有帮助。
DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与...
DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与...
DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与...
DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与...
【Dojo 学习笔记】 Dojo 是一个强大的JavaScript工具库,特别适合于Web编程,尤其在面向对象的JavaScript编程方面表现出色。学习Dojo之前,建议先掌握JavaScript的面向对象编程基础,这对于理解Dojo的源码和设计...
基本的表单验证 和前一个树形菜单 ...发现很多 dojo 学者想下载 dojo 的API…… 结论是:下不到的! 发现很多想下载一些帮助例子,在http://download.dojotoolkit.org/ 下才能找到,进去点版本,比如 ...
这个压缩包包含了Dojo的源代码和相关学习笔记,旨在帮助开发者深入理解Dojo的工作原理和使用方法。 1. **Dojo 源代码解析**: Dojo 的源代码是用JavaScript编写的,并遵循AMD(Asynchronous Module Definition)...
首先,"dojo文档.doc"可能是作者整理的个人学习笔记,通常这样的文档会包含对Dojo核心概念的理解、常用函数和方法的解释、实例代码以及可能遇到的问题解决方案。个人笔记是学习过程中宝贵的经验总结,可以帮助快速...
【Dojo 教程笔记】 Dojo 是一个强大的JavaScript工具库,它采用了面向对象的编程方式,对于熟悉JavaScript面向对象编程的开发者来说尤其有用。在开始学习Dojo之前,建议先掌握JavaScript的基础知识,特别是面向对象...
### Dojo框架学习笔记 #### 一、Dojo框架简介 Dojo是一个开源的JavaScript库,主要用于构建高性能的Web应用程序。它提供了一系列的功能强大的工具,包括DOM操作、AJAX、事件处理、用户界面控件等,使开发者能够...
《Dojo 学习笔记入门篇 - 首个Dojo示例解析》 Dojo是一个功能强大的JavaScript工具包,它提供了丰富的UI组件、模块化系统、数据存储以及Ajax等功能,广泛应用于Web开发中。本篇文章将引导你完成Dojo的基础配置,并...
在"dojo学习笔记.pdf"中,你可能会学习到如何导入Dojo,如何使用模块系统,以及一些基本的Dojo API。"Dojo快速入门.pdf"可能会介绍Dojo的安装、配置过程,快速上手的方法,以及Dijit组件的初步使用。最后,"dojo组件...