`
子衿青青
  • 浏览: 110892 次
  • 性别: 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 Ajax

    `dojo.io.bind`允许开发者定义请求参数、处理函数以及数据绑定。 3. **dojo.Request**: 针对AMD(Asynchronous Module Definition)模块加载器,dojo引入了`dojo/request`模块,它提供了一个更现代且更易于使用的...

    Dojo构建Ajax应用程序源码(包括书中用到的dojo-release-1.1.2)

    Dojo框架的核心功能包括模块系统、DOM操作、事件处理、动画效果、数据存储以及Ajax通信等。在dojo-release-1.1.2中,我们可以深入研究以下关键知识点: 1. **模块系统**:Dojo采用了一个名为AMD(Asynchronous ...

    dojo-0.3.1-ajax

    "dojo-0.3.1-ajax" 是一个与Dojo JavaScript库相关的版本,特别是涉及到其 AJAX(Asynchronous JavaScript and XML)功能的版本。Dojo是一个开源的JavaScript工具包,为Web开发提供了丰富的功能,包括DOM操作、动画...

    最棒的AJAX框架DOJO中文手册

    Dojo 是一个强大的JavaScript工具库,专为构建富互联网应用程序(RIA)而设计,特别是在AJAX、DOM操作、事件处理、动画效果以及模块化开发方面表现出色。这个“最棒的AJAX框架DOJO中文手册”提供了全面的中文指南,...

    dojo常用方法总结

    ### Dojo常用方法总结 Dojo是一个开源的JavaScript框架,用于构建高性能的富客户端Web应用程序。它提供了一系列功能强大的工具和API,可以帮助开发者更轻松地处理DOM操作、AJAX调用、用户界面组件构建等任务。本文...

    DOJO 学习笔记 dojo

    `dojo.io.IO` 和 `dojo.io.BrowserIO` 是处理 I/O 任务的关键模块,包括发送 AJAX 请求和处理服务器响应。`dojo.dom` 模块则提供了操作 DOM(文档对象模型)节点的方法,如查找、创建、修改和删除元素。 `dojo....

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

    Dojo提供了一系列用于处理Ajax请求的函数,其中`dojo.xhrGet`和`dojo.xhrPost`是最常用的两个函数。 ##### 4.1 发送GET请求 下面是一个简单的示例,展示了如何使用`dojo.xhrGet`发送GET请求并处理响应: ```...

    dojo dojo实例 dojo例子 dojo资料 dojo项目 dojo实战 dojo模块 dojo编程

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,涵盖了从DOM操作、事件处理到AJAX通信等多个方面。Dojo的核心在于它的模块化系统,这使得开发者可以按需加载代码,提高应用的性能和可维护...

    AJAX之Dojo实现登陆框

    总结,"AJAX之Dojo实现登陆框"涵盖了使用Dojo库进行AJAX请求,构建无刷新登录表单,处理表单数据,以及相关的事件监听和响应处理。在实践中,还需要结合前端验证、后端安全措施以及用户体验设计来创建一个完整的登录...

    dojo的ajax的jar包

    在JSP页面上,使用dojo的xhr方法时,URL应指向struts2的Action路径,同时利用dojo的dojo.connect或dojo.on事件监听器绑定回调函数。 在dojo-0.4.3-ajax这个特定版本中,可能包含了对旧版Struts和dojo特定版本的兼容...

    dojo中文文档-dojo手册

    Dojo是一个强大的JavaScript工具包,它提供了丰富的功能,包括DOM操作、AJAX交互、动画效果、事件处理以及模块化开发等,帮助开发者构建高性能、可维护的Web应用。 Dojo的核心概念之一是模块系统(dojo/_base)。这...

    dojo-0.4.1-ajax

    9. **dojo.connect**: 事件处理是Dojo的一个重要特性,`dojo.connect`方法允许开发者将函数连接到特定事件上,使得AJAX操作完成后可以触发相应的处理函数。 10. **模块化系统**: Dojo Toolkit使用AMD(Asynchronous...

    dojo练习

    Dojo Toolkit是一个强大的前端开发框架,它提供了丰富的功能,包括DOM操作、事件处理、动画效果、AJAX交互、模块化开发等。 在【Dojo.chm】文件中,你可能找到的是Dojo官方的帮助文档,这是一个离线版的CHM...

    Dojo+API

    它提供了一系列丰富的工具、组件和模块化系统,使得开发人员能够轻松处理DOM操作、事件处理、Ajax通信、动画效果以及数据存储等问题。本文将深入探讨Dojo API的核心特性、使用方法以及在实际开发中的应用。 1. **...

    Dojo教程

    这个框架全面地涵盖了前端开发所需的各种功能,包括DOM操作、事件处理、动画效果、数据存储以及Ajax通信等。Dojo 的核心优势在于其模块化的设计,使得开发者能够按需加载所需的组件,从而优化页面性能。 "dojo教程...

    AJAX的DOJO中文文档

    "实战Dojo工具包.pdf"可能是本书籍或教程的一部分,它深入讲解了如何在实际项目中应用DOJO的AJAX功能,包括创建、发送请求,处理响应,以及与其他DOJO组件集成等。 总结,DOJO为AJAX提供了强大而灵活的支持,它的...

    dojo精品中文教程(包一)

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

    dojo-release-1.9.0-src.zip dojo javascript库源码

    Dojo 是一个强大的JavaScript工具包,它为Web开发提供了丰富的功能和组件,包括DOM操作、事件处理、Ajax交互、动画效果、模块化编程等。在"dojo-release-1.9.0-src.zip"这个压缩包中,我们获取的是Dojo 1.9.0版本的...

    Dojo API 1.9.chm 离线参考手册

    Dojo Toolkit是一个强大的JavaScript库,为Web开发提供了丰富的功能和组件,包括DOM操作、事件处理、AJAX通信、动画效果以及模块化开发等。 Dojo API 1.9主要知识点: 1. **模块系统**:Dojo的核心特性之一是它的...

Global site tag (gtag.js) - Google Analytics