深入了解Dojo核心接口简介(一)

Dojo 的强大不仅仅在于它提供的各种控件,还在于它提供的面向对象的">开发模式,以及各种应用级别的框架。除此以外,更值得一提的是:Dojo 提供了很多很强大的核心接口,基于这些接口,我们可以高效快捷的实现应用中所需要的各种逻辑和算法。这些接口支持各种浏览器,使得我们不用再去考虑浏览器差别所带来的各种实现问题。

Dojo 的这些接口大大简化了我们的 Web 前端开发的复杂度,使得我们能够在更短的时间内实现功能更为丰富的应用。这篇文章将重点介绍 Dojo 的核心接口所带给 Web 开发工程师们的各种便利以及它的一些使用技巧。

Dojo 核心接口简介

Dojo 的核心接口主要位于 Dojo 的三大库(“dojo”,“dijit”和“dojox”)中的“dojo”包里,它包括了日常 Web 开发中最为通用的一些组件和模块,覆盖面也非常广泛,囊括了 AJAX、DOM 操作,面向对象模式开发、事件、Deferred、数据(data stores)、拖拽(DND)和国际化组件等等。这些通用组件中用很多非常强大实用的核心接口,能给我们的日常 Web 开发带来相当大的便利。本文我们会深入详细的介绍这些核心接口(文中代码示例主要基于 Dojo 的 1.7 版本及以后)。

鉴于 Dojo 的核心接口比较复杂,内容比较多,所以,本文将 Dojo 的核心接口分为两个部分介绍:核心基础接口和核心功能接口。我们先来了解一下 Dojo 的核心基础接口。

核心基础接口

核心基础接口是 Dojo 中最为通用的一组接口,但凡基于 Dojo 开发的 Web 基本都会涉及到这些接口。

Kernel 接口 (dojo/_base/kernel)

Kernal 组件包含了 Dojo 核心里面的最基本的一些特性,这个组件往往不是由开发人员直接引入的,而是通过引入其它的某些常用核心组件时间接引入的。

清单 1. Kernel 代码示例

require(["dojo/_base/kernel"], function(kernel){ kernel.deprecated("dijit.layout.SplitContainer", "Use dijit.layout.BorderContainer instead", "2.0"); kernel.experimental("acme.MyClass"); var currentLocale = kernel.locale; query(".info").attr("innerHTML", kernel.version); });

首先,Kernel 的 deprecated 方法,用于在控制台输出相关警告信息,如某些包或方法被删除、修改了或者用户正在使用一个方法老版本等等。通过 deprecated 输出的信息只有的 dojoConfig 里设置了“isDebug”为 true 时才会输出到控制台。

然后,experimental 方法,同 deprecated 一样,不过它主要用来提示用户某些模块或者方法是 experimental 的,请谨慎使用。

最后,是“locale”和“version”属性,分别表示国际化信息和 Dojo 的版本信息。

Kernel 还有一个 global 的属性,在浏览器中就是 window 对象的一个别名:

清单 2. Kernel 的 global 代码示例

require(["dojo/_base/kernel", "dojo/on"], function(kernel, on){ on(kernel.global, "click", function(e){ console.log("clicked: ", e.target); }); });

清单 2 的操作就相当于给 window 对象绑上了一个“click”事件。

Dojo.config 接口 (dojo/_base/config)

Config 接口应该是我们最为熟悉不过的接口了,在我们引入 Dojo 的时候都会先做一些全局的配置,所使用的就是 Dojo 的 Config 接口。

清单 3. Config 基本代码示例

// 通过“data-dojo-config”属性配置 <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Dojo dojo.config Tutorial</title> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js" data-dojo-config="parseOnLoad: true, isDebug: true"></script> </head> <body> <p>...</p> </body> </html> // 通过 JavaScript 变量配置 <!DOCTYPE HTML> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Dojo dojoConfig Tutorial</title> <script type="text/javascript"> var dojoConfig = { parseOnLoad: true, isDebug: true, locale: 'en-us', extraLocale: ['ja-jp'] }; </script> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js"> </script> </head> <body> <p>...</p> </body> </html>

可见,配置 Config 可以通过两种方式,“data-dojo-config”属性或者“dojoConfig ”变量,其效果是一样的。

时间: 2024-08-01 22:43:39

深入了解Dojo核心接口简介(一)的相关文章

深入了解Dojo核心接口简介(二)

核心功能接口 了解了 Dojo 的核心基础接口,我们可以转入 Dojo 的http://www.aliyun.com/zixun/aggregation/17626.html">核心功能接口了.Dojo 包括了大量的强大的核心功能,这些功能给我们的日常开发带来了相当多的帮助和便利.但是正是由于 Dojo 如此的完善和丰富,导致很多读者在使用过程中无暇顾及它所有的方面,很多非常实用的接口至今还不被大多数人所知晓和熟悉.接下来,我们会略过大家都比较熟悉的一些功能接口(如 forEach,add

深入了解Dojo核心接口简介(三)

dojo/query 这个 dojo/query 模块相信读者们也是非常熟悉了,它主要是基于 CSS 的 Selector 来定位并返回相应节点.其实它使用起来非常简单,本小节我们会重点它的一些不太为人知的特殊功能. 先来看一个基本使用方式的示例: 清单 46. dojo/query 简单示例 require(["dojo/query", "dojo/dom"], function(query, dom){ var nl = query(".someCla

Hibernate核心接口简介

接口 在项目中使用Hibernate框架,非常关键的一点就是要了解Hibernate的核心接口.Hibernate接口位于业务层和持久化层,如图1所示. 图1 Hibernate核心接口的层次架构关系 Hibernate的核心接口一共有5个,分别为:Session.SessionFactory.Transaction.Query和Configuration.这5个核心接口在任何开发中都会用到.通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制.下面对这五的核心接口分别加以介绍. ·S

使用Dojo的Ajax应用开发进阶教程,第7部分: Dojo核心库深入介绍

Dojo 核心库构建于 Dojo 基本库之上,为 Ajax 应用的开发提供了更加丰富的功能.掌握 Dojo 核心库中包含的内容,可以开发人员减少代码量,而把工作精力集中在与业务逻辑相关的组件的实现上.Dojo 核心库中包含的内容也比较多,本文只是介绍其中一些比较重要或是复杂的部分.首先从数据模型开始介绍. 数据模型 在传统的 Web 应用中,客户端部分所承担的职责很少,基本上只负责数据展现.应用所涉及的复杂数据模型的处理工作由服务器端代码来完成.而在 Ajax 应用中,客户端部分也需要处理一部分

hibernate-新手求助!Hibernate中如何把几个核心接口写在一个工具类中?

问题描述 新手求助!Hibernate中如何把几个核心接口写在一个工具类中? 要写一个Struts2+Hibernate 整合的CRUD , 然后不知道怎么把 Session.SessionFactory.Configuration.Transaction这几个类写在 util包中的工具类里?求各位大神解答一下.万分感谢!!! 解决方案 定义一个类,把这些作为内嵌类全部贴过来 解决方案二: http://m.blog.csdn.net/blog/StubbornPotatoes/7705693

SQLite教程(二):C/C++接口简介_SQLite

一.概述:     在SQLite提供的C/C++接口中,其中5个APIs属于核心接口.在这篇博客中我们将主要介绍它们的用法,以及它们所涉及到的核心SQLite对象,如database_connection和prepared_statement.相比于其它数据库引擎提供的APIs,如OCI.MySQL API等,SQLite提供的接口还是非常易于理解和掌握的.     二.核心对象和接口:     1. 核心对象:     在SQLite中最主要的两个对象是,database_connectio

Hibernate-HQL Query接口简介

Query接口简介: 1.org.hibernate.Query接口定义有执行查询的方法(该接口解析HQL语句,然后根据配置信息生成SQL语句): 2.Query接口支持方法链编程风格,使得程序代码更为简洁(方法链编程:调用方法后,返回的结果依然是调用这个方法的对象,可以调用该对象的其他方法) 3.Query实例的创建: a.Session的createQuery()方法创建Query实例 b.createQuery方法包含一个HQL语句参数,createQuery(hql) 4.Query执行

[Apache commons系列]DBUtils简介-2.核心类简介

inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ). DbUtils是一个小型的类库,不需要也不值得花太长的时间去熟悉每一个类.DbUtils核心其实只有三个类/接口,即QueryRunner .ResultSetHandler 和DbUtls (官方文档中写的是前两个).(来源:http://blog.csdn.net/inkfish)   一.下面先过一下DbUtils的几个包(package):(来源:http://blog.

智能平台管理接口简介

智能平台管理接口 (IPMI) 是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法.IPMI 信息通过基板管理控制器 (BMC)(位于 IPMI 规格的硬件组件上)进行交流.使用低级硬件智能管理而不使用操作系统进行管理,具有两个主要优点: 首先,此配置允许进行带外服务器管理:其次,操作系统不必负担传输系统状态数据的任务. 主板supermicro x8dtt-f 1.下载ipmi软件ftp://ftp.supermicro.com/utility/IPMIView/ 2.