`

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)

 

分享到:
评论

相关推荐

    DOJO 学习笔记 dojo

    Dojo 是一个功能丰富的 JavaScript 库,它提供了一系列模块化、面向对象的工具,用于构建高性能的 Web 应用程序。在 Dojo 中,模块和包...通过深入学习和理解这些模块和包,开发者可以构建高效、健壮的 Web 应用程序。

    dojo学习笔记

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,包括AJAX、DOM操作、动画...在“dojo学习笔记”中,你可能找到了关于这些概念的详细讲解和实践案例,这对理解和掌握Dojo技术体系非常有帮助。

    dojo精品中文教程(包一)

    DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与...

    dojo精品中文教程(全)

    DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与...

    dojo精品中文教程(包二)

    DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与...

    dojo精品中文教程(包三)

    DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与...

    dojo学习笔记(web编程必备)

    【Dojo 学习笔记】 Dojo 是一个强大的JavaScript工具库,特别适合于Web编程,尤其在面向对象的JavaScript编程方面表现出色。学习Dojo之前,建议先掌握JavaScript的面向对象编程基础,这对于理解Dojo的源码和设计...

    dojo 学习笔记 表单 树形列表

    基本的表单验证 和前一个树形菜单 ...发现很多 dojo 学者想下载 dojo 的API…… 结论是:下不到的! 发现很多想下载一些帮助例子,在http://download.dojotoolkit.org/ 下才能找到,进去点版本,比如 ...

    dojo源文件+学习笔记

    这个压缩包包含了Dojo的源代码和相关学习笔记,旨在帮助开发者深入理解Dojo的工作原理和使用方法。 1. **Dojo 源代码解析**: Dojo 的源代码是用JavaScript编写的,并遵循AMD(Asynchronous Module Definition)...

    Dojo简单笔记和权威学习去处

    首先,"dojo文档.doc"可能是作者整理的个人学习笔记,通常这样的文档会包含对Dojo核心概念的理解、常用函数和方法的解释、实例代码以及可能遇到的问题解决方案。个人笔记是学习过程中宝贵的经验总结,可以帮助快速...

    Dojo 教程 笔记 (转载)

    【Dojo 教程笔记】 Dojo 是一个强大的JavaScript工具库,它采用了面向对象的编程方式,对于熟悉JavaScript面向对象编程的开发者来说尤其有用。在开始学习Dojo之前,建议先掌握JavaScript的基础知识,特别是面向对象...

    推荐dojo学习笔记

    ### Dojo框架学习笔记 #### 一、Dojo框架简介 Dojo是一个开源的JavaScript库,主要用于构建高性能的Web应用程序。它提供了一系列的功能强大的工具,包括DOM操作、AJAX、事件处理、用户界面控件等,使开发者能够...

    Dojo 学习笔记入门篇 First Dojo Example

    《Dojo 学习笔记入门篇 - 首个Dojo示例解析》 Dojo是一个功能强大的JavaScript工具包,它提供了丰富的UI组件、模块化系统、数据存储以及Ajax等功能,广泛应用于Web开发中。本篇文章将引导你完成Dojo的基础配置,并...

    Dojo的一些学习资料

    在"dojo学习笔记.pdf"中,你可能会学习到如何导入Dojo,如何使用模块系统,以及一些基本的Dojo API。"Dojo快速入门.pdf"可能会介绍Dojo的安装、配置过程,快速上手的方法,以及Dijit组件的初步使用。最后,"dojo组件...

Global site tag (gtag.js) - Google Analytics