Dojo是一个强大的面向对象JavaScript框架。主要由三大模块组成:Core、Dijit、DojoX。Core提供Ajax,events,packaging,CSS-based querying,animations,JSON等相关操作API。Dijit是一个可更换皮肤,基于模板的WEB UI控件库。DojoX包括一些创新/新颖的代码和控件:DateGrid,charts,离线应用,跨浏览器矢量绘图等。

Dojo不但提供各式各样的Javascript标准库方法,还包含了功能丰富的部件(极大减少开发量,基本不用再编写JavaScript代码)、构建工具(build脚本)、测试框架等,从全局的角度来看,Dojo框架 有如下几部分组成:
 

Dojo框架图

Base

      作为Dojo的内核,是一个很简洁、高度优化的库,也是Dojo中其他部分的基础组件。
 

Core

      基于Base而构建,提供了解析部件、高级动画效果、拖放工具、国际化、后退按钮处理、管理cookie等方面的功能。其中,Dojo的打包系统提供了如同Java中import语句一样简单的机制,让我们能很方便的导入必要模块和资源。
     区分Base和Core,可以简单的通过 是否必须显示引入到页面的模块或资源,并且如果和dojo命名空间有关系,那就是属于Dojo中Core组件部分了。
 

Dijit

     这是Dojo中的部件库,也叫做Dojo widget,它提供了大量即装即用的部件,并且轻量、方便移植。我们同样可以在Dojo中很容易的创建自己的部件库。
 
     对于部件的使用,简单来说只需在普通HTML标签中指定特殊的dojoType属性为你所要使用的部件Id,由于Dijit直接构建与Core,对其强烈依赖,所以我们也是要通过显示引用来加载部件。只要是遵循Dijit的风格和约定,就能开发出同样易于移植并符合可重用组件的要求。
 
     Dijit中的部件简略分类为:通用部件、布局部件和表单部件。通用部件有进度条和对话框等,布局部件有选项卡、折叠菜单栏等,表单布局就是各类BTN、输入框等。
 

DojoX

     DojoX是一组扩展子项目的集合,也就是Dojo中的实验项目或不稳定项目的总和。一般这类组件都是很容易发生变化并不稳定,用他们的话来解释,DojoX是处于构思阶段的部件。
 

Util

     这里就包含了前面介绍JavaScript单元测试框架和一些构建工具。构建工具的主要作用就是减少代码文件的大小,并且能够将它们整合到一个由多层构成的文件集合中(看明白没,说白了就是把项目文件构建成一个紧凑的体系结构),要知道Dojo宣传说压缩后的脚本大小普遍较少50%或者更多。(就我在Dojo项目上摸爬滚打中所了解到,50%是个比较靠谱的数据,我们项目前台js文件压缩后边的很小了)
 
     Dojo的背后力量很强大,在IBM的推动下,很多项目也都应用Dojo框架来做前端,作为知识储备,了解和熟悉它,也是很有必要的。

认识dojo的更多相关文章

  1. AngularJs2与AMD加载器(dojo requirejs)集成

    现在是西太平洋时间凌晨,这个问题我鼓捣了一天,都没时间学英语了,英语太差,相信第二天我也看不懂了,直接看结果就行. 核心原理就是require在AngularJs2编译过程中是关键字,而在浏览器里面运 ...

  2. Dojo前端开发框架与jQuery前端开发框架,对比分析总结

    最近Dojo和jQuery双双发布了最新的1.8版本,有着相同版本号的两个Javascript库也有许多核心的相同之处:相同的资源加载机制AMD.相同的选择器 引擎Sizzle等.作为业界知名的Jav ...

  3. Dojo: Quick Start

      1.Dojo学习地址 2.Dojo快速开始 2.1.Dojo引入 2.2.指定Dojo模块的位置 2.3.模块加载require 3.查找Dom节点 3.1.根据id查找dom节点 3.2.根据c ...

  4. js库之dojo

    使用dojo源代码 1.下载Dojo 2.dojo目录结构如下 demo/ myModule.js dojo/ dijit/ dojox/ util/ hellodojo.html 3.引入dojo. ...

  5. dojo.require()的相关理解

    Dojo 提供了一个非常强大的javascript控件库. 在使用dojo之前,用户基本上不需要具备任何基础知识. 你可以用script远程链接到dojo(dojo.js), 也可以把dojo.js下 ...

  6. dojo tree edit的使用[前端]

    var store = new mydata.JsonRestStore({ target: "<%=ResolveUrl("~/uieditserver.ashx" ...

  7. 【原创】(AMD)JavaScript模块化开发(dojo)

    AMD原理等在这里就不进行说明了,作者也是菜鸟一枚,只是对自己的一个实例进行说明,如有错误,望指出. 首先,先推荐一篇AMD方面的文章,有兴趣的可以参考:http://efe.baidu.com/bl ...

  8. 开始学习Dojo

    学习:Dojo入门简易教程 Dojo Toolkit 简介 Dojo 于 2004 年创建,使开发 DHTML 和 JavaScript web 应用程序开发流程更为容易,隐藏了很多现代 web 浏览 ...

  9. understand dojo/domReady!

    require(["dojo/dom", "dojo/domReady!"], function(dom){ dom.byId("helloworld ...

  10. 一起来学习DOJO吧--序

    DOJO的官方站点http://dojotoolkit.org/ DOJO是一套完整的javascript解决方案,从UI到类库都提供了全覆盖的支持. DOJO是一套很重的框架,在运用到项目中前请谨慎 ...

随机推荐

  1. 同一个程序里有多个版本的App

    在Xcode中添加多个targets进行版本控制,就是同一个app开发多个版本 以Xcode 9.3 为例 1. 创建 点击左侧工程项目文件,选择TARGETS 下的项目右击选择 Duplicate. ...

  2. Sqoop 遇到的问题

    1.   想用 sqoop 增量的方式导入到 hive.运行下面的命令: sqoop import --connect jdbc:mysql://192.168.7.159:3306/test --u ...

  3. php代码审计7审计csrf漏洞

    跨站请求伪造,也有人写出xsrf,黑客伪造用户的http请求,然后将http请求发送给存在csrf的网站,网站执行了伪造的http请求,就引发了跨站请求伪造 漏洞危害:攻击者盗用了你的身份信息,以你的 ...

  4. ObjectARX对话框添加颜色下拉组合框

    建立Arx基本对话框,最好是基于CAcUidialog类. 首先添加combox控件更改一下属性: 先修改Owner Draw为Fixed,再更改Has Strings 为true Has Strin ...

  5. vs2017启动iis局域网无法访问解决

    1.找到IISExpress的配置文件,位于 <文档>/IISExpress/config文件夹下,打开applicationhost.config,找到如下代码: <site na ...

  6. [USACO07DEC]泥水坑Mud Puddles BFS BZOJ 1627

    题目描述 Farmer John is leaving his house promptly at 6 AM for his daily milking of Bessie. However, the ...

  7. 对KMP算法通过代码生成next数组理解

    本文是根据考研数据结构2019版天勤高分笔记理解编写的: 首先给出代码: 1 void getnext(Str substr,int next[]){ 2 int i=0,j=0; 3 next[1] ...

  8. JDK 5 ~ 10 新特性倾情整理!

    JDK 5 ~ 10 新特性倾情整理! 最近连 JDK11都在准备发布的路上了,大家都整明白了吗?也许现在大部分人还在用6-8,8的新特性都没用熟,9刚出不久,10-11就不用说了. 为了大家对JDK ...

  9. copy模拟

    1.copy是浅复制,只复制一层:而deepcopy是所有层都复制,适用于lis嵌套listt的复制.两都均是函数.

  10. C++_函数4-函数重载与函数模板

    函数重载 多个函数,函数名相同,但是调用的时候,参数不同. 函数多态是C++在C语言的基础上新增的功能.多态指的是有多种形式,因此函数多态允许函数可以有多种形式.术语“函数重载”指的是可以有多个同名的 ...