`
子衿青青
  • 浏览: 105742 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

部分Dojo常用函数简介(五)——事件处理以及Ajax I/O函数扩展

 
阅读更多

每个Ajax 框架都对Javascript 做了扩展,提供了很多常用函数,增强了 Javascript 的开发效率。在这里将对部分Dojo 中的常用函数做简单的介绍。由于Dojo的常用函数较多,也为方便大家阅读,将这些常用函数分为了五个类别分别进行介绍。本文将介绍第五部分,也是最后一部分的内 容:事件处理以及Ajax I/O函数扩展。

* 本系列博文的绝大多数内容来自于对dojocampus.org上的dojo reference guide文档的翻译,在此也特别感谢文档的翻译者们:Fei Jia, Zhu Xiao Wen, Li Wen Bing, Zhang Jun, Hu Kuang, Huang Wei, Wu Min Qi, Mo Ying, Cheng Fu, Zhong Si Qi

dojo.connect, dojo.disconnect

dojo.connect用于将指定的事件处理函数绑定到事件上,也可以将绑定到某个函数上,在被绑定的函数执行后,给定的函数将会被触发执行。dojo.connect是Dojo的最主要的事件处理及委托方式,它可接收5个参数:

  • obj: 事件源对象,或被绑定函数的作用域,默认值(或obj被设为null)为dojo.global。
  • event:事件名或被绑定函数名,结合第一个参数,被绑定事件(或函数)会被指定为obj[event]。
  • Context:事件处理函数(绑定函数)的作用域。默认值(或context被设为null)为dojo.global。
  • Method:事件处理函数(绑定函数)的名称或是函数引用,如果为函数名称,结合context参数,该函数会被指定为context[method]。这个函数会在事件或绑定函数执行后被触发。该函数接收的参数与事件或被绑定函数的参数相同。
  • dontFix:这是一个可选参数,如果第一个参数obj为一个DOM节点对象,且dontFix设为true,则事件处理不会委托给DOM事件管理器来进行分发。

dojo.connect将会返回一个handle对象,强烈建议你在代码中保存这些handle对象,并在代码进行销毁时调用dojo.disconnect来销毁这些连接,否则将会导致内存泄露。具体用法参见下面的示例:

dojo.subscribe, dojo.unsubscribe

dojo.subscribe用于注册函数监听某个被发布的频道。当调用dojo.publish来向被监听的频道发送数据时,被注册的监听函数则被触发,接收发送的数据作为参数。具体用法参见下面的例子:

与dojo.connect相同,dojo.subscribe会返回一个对象,在对代码进行销毁时,需要调用dojo.unsubscribe,传入dojo.subscribe返回的对象来销毁监听对象,以避免内存泄露。

dojo.publish, dojo.connectPublisher

结合上面的dojo.subscribe,dojo.publish是用于向指定的频道发布数据的一个函数。


dojo.connectPublisher则用于绑定某些事件,以便自动向指定的频道发布数据。如下例所示,两段代码的功能是相同的:

使用dojo.connectPublisher:

dojo.connectPublisher会返回一个handle对象,在销毁代码时,需要调用dojo.disconnect来对这个连接进行销毁以避免内存泄露。

dojo.xhr

首先需要注意,dojo.xhr并不是一个函数,XHR是XMLHTTP request object (XMLHTTP请求对象)的一个简写。Dojo封装了一系列的XHR函数用于Ajax交互,包括:dojo.xhrGet, dojo.xhrPost, dojo.xhrDelete,dojo.xhrPut, dojo.rawXhrPost, dojo.rawXhrPut等。这些函数的功能与用法都比较类似,下面是一个dojo.xhrGet的简单用法的示例:

dojo.xhr*接收一个JSON对象作为参数,该参数可包括众多属性,以下列出一些重要的属性:

  • url – XHR的数据请求接收URL,由于XHR的安全限制,该URL必须与脚本处于相同的域及端口下;
  • timeout – 超时设定,单位为ms,当等待时间超过给定值,则会抛出一个错误给指定的错误处理回调函数;
  • sync - boolean值,指定该XHR请求是同步或是异步,默认值为false(异步);
  • content – 一个JSON对象,其包含的键值对将作为请求参数添加到URL后;

以上只列出了一部分属性,要想知道全部属性列表,请参见dojo campus文档(dojo.xhrGetdojo.xhrPost )。下面是另一个示例:

至此,该系列文章:部分Dojo常用函数简介就告一段落了,希望能这些简单的介绍能对大家的开发带来一点帮助,而如果在其中有什么错误疏漏,也请大家不吝指正。

分享到:
评论

相关推荐

    dojo精品中文教程(包一)

    DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom ...

    dojo精品中文教程(全)

    DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom ...

    dojo精品中文教程(包二)

    DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom ...

    dojo精品中文教程(包三)

    DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级AJAX动态加载的功能模块树 Dojo学习笔记( 模块与包) Dojo学习笔记-- djConfig解说 Dojo学习笔记-- dojo.dom ...

    dojo函数+实例[初步整理]

    dojo函数+实例 本人在网络+DOJOCHINA+DOJO官网,才研究的到的. 刚刚接触,感觉颇累,希望有高手可以指点我. lrxou@163.com

    Dojo 1.5源码包

    3) Dojo自身定义界面组件库,其组件代码采用了面向对象的思想,便于继承以及扩展;只要组件库丰富; 4) 当对前端界面联动需求较为复杂的时候,基于dojo的页面组件将是首选,因为其可以将界面中某一个具有共性的区域...

    AJAX个人站点整站源代码

    /inc 常用函数目录 /js 前台界面及逻辑处理JS文件目录 /effect.js 前台界面效果JS文件 /action.js 前台逻辑处理JS文件 /action.asp 后台逻辑模块文件 /common.asp 全局设置、数据库链接文件 /debug.asp 调试记录...

    jquery插件使用方法大全

     jQuery 1.0(2006年8月):该库的第一个稳定版本,已经具有了对CSS选择符、事件处理和AJAX交互的稳健支持。 jQuery 1.1(2007年1月):这一版大幅简化了API。许多较少使用的方法被合并,减少了需要掌握和解释的...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    程序描述:本章将介绍 GWT应用中高级应用的部分,包括各中组件和布局、如何发送XMLHttpRequest请求,以及如何解决浏览器历史记录问题等等,同时读者还将详细的了解RPC应用的开发过程。 /xmlsample/AjaxSample....

    dojo-loader-progress:向 Dojo Toolkit 加载器添加进度信息

    道场装载机进度使用此工具来跟踪 Dojo Toolkit 加载器的进度。用法: 加载 Dojo Toolkit 后立即包含progress.js < script src =" //ajax.googleapis.com/ajax/libs/dojo/1.10.1/dojo/dojo.js " > </ script...

    jquery-1.1.3 效率提高800%

    // the options for this ajax request }global(true) 数据类型: Boolean 是否为当前的请求触发全局AJAX事件处理函数,默认值为true。设置为false可以防止触发像ajaxStart或ajaxStop这样的全局事件处理函数...

    Aptana 非常不错的Javascript 编辑开发工具

    *支持流行AJAX框架的Code Assist功能:AFLAX,Dojo,JQuery,MochiKit,Prototype,Rico,script.aculo.us,Yahoo UI,Ext。 *Adobe AIR与iPhone开发工具 其主页上还提供如何使用该开发工具的视频。 Aptana 下载...

    MyEclipse 插件 Aptana 压缩卷1

    Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE。它的特点包括: *JavaScript,... *支持流行AJAX框架的Code Assist功能:AFLAX,Dojo,JQuery,MochiKit,Prototype,Rico,script.aculo.us,Yahoo UI。

    MyEclipse 插件 Aptana 压缩卷2

    Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE。它的特点包括: *JavaScript,... *支持流行AJAX框架的Code Assist功能:AFLAX,Dojo,JQuery,MochiKit,Prototype,Rico,script.aculo.us,Yahoo UI。

    MyEclipse 插件 Aptana 压缩卷3

    Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE。它的特点包括: *JavaScript,... *支持流行AJAX框架的Code Assist功能:AFLAX,Dojo,JQuery,MochiKit,Prototype,Rico,script.aculo.us,Yahoo UI。

    Aptana_Studio_Setup_2.0.5

    Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE。它的特点包括: *JavaScript,JavaScript函数,HTML,CSS语言的Code Assist功能。 *Outliner(大纲):显示JavaScript,HTML和CSS的代码结构。 *代码语法错误...

    Aptana2.0.5 eclipsePlugin part2

    Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE。它的特点包括: *JavaScript,... *支持流行AJAX框架的Code Assist功能:AFLAX,Dojo,JQuery,MochiKit,Prototype,Rico,script.aculo.us,Yahoo UI。

    Aptana_Studio_3_Setup_3.0.2

    Aptana_Studio_3_Setup_3.0.2.exe Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发... *支持流行AJAX框架的Code Assist功能:AFLAX,Dojo,JQuery,MochiKit,Prototype,Rico,script.aculo.us,Yahoo UI。

    JAVA上百实例源码以及开源项目

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    AJAX跨域请求json数据的实现方法

    JSONP是一种通过脚本标记注入的方式,它是可以引用跨域URL的js脚本,不过需要提供一个回调函数(必须在您自己的页面上),因此,你可以自己处理结果。 让我们看看JSONP的是怎么在jQuery,MooTools的,Dojo Toolkit中...

Global site tag (gtag.js) - Google Analytics