dojo学习笔记1

1.Dojo工具包:

dojo.collections:很有用的集合数据结构(ListQuerySetStackDictionary...

dojo.crypto:实现加密功能的APIBlowfishMD5RijndaelSHA...

dojo.date:无须编写丑陋的代码来解析日期格式。

dojo.dnd:拖放功能的辅助API。我们将要建造一个支持拖放功能的应用。

dojo.event:事件驱动的API,支持AOP开发,以及主题/队列的功能。

dojo.lfxHTMLSVG效果库。我们将在例子中使用这些效果。

dojo.animation:基于Dan Pupius在动画方面的工作.

dojo.io:不同的IO管道。cookieIFrame、发布/订阅功能等等。所有神奇的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>)。支持基于标记的应用开发(例如:XAMLXUL

dojo.xmldojo.dom:帮助你处理DOM的辅助函数,以及其他的XML辅助函数。

dojo.styleCSS功能,例如访问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就具备了s1s2的所有属性和方法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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值