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. Kafka,Mq,Redis作为消息队列有何差异?

    Kafka作为新一代的消息系统,mq是比较成熟消息系统,而redis也可以发布订阅,那么这三者有何异同? RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,X ...

  2. TX2 上使用opencv 调用板载mipi摄像头

    使用命令测试 gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, fo ...

  3. java 开发原则(七个)

    转自 : https://blog.csdn.net/u011288271/article/details/52497602 对于Java看到过一个很有意思的说法:Java有六大心法,23种武功招式. ...

  4. em 与 rem 区别.

    em 与自身  字体大小有关. rem 与 body 的字体大小有关..

  5. node.js express 启用 https

    服务端和客户端各有一对公钥和私钥,使用公钥加密的数据只能用私钥解密,建立https传输之前,客户端和服务端互换公钥.客户端发送数据前使用服务端公钥加密,服务端接收到数据后使用私钥解密,反之亦如此. 公 ...

  6. pyhton学习,day1作业,用户名密码登录模块

    要求,通过用户名密码登录,登录错误3次,锁定用户名 # coding=utf-8 # Author: RyAn Bi import os, sys #调用系统自己的库 accounts_file = ...

  7. c# 委托访问listbox多线程操作

    c# 委托访问listbox多线程操作 using System;using System.Collections.Generic;using System.ComponentModel;using ...

  8. bzoj1818 内部白点(好题) 离散化+树状数组

    题目传送门 题意:给出很多黑点,当一个坐标上下左右都有黑点时,这个点也被染成黑色,问最后黑点的数量. 思路:首先,一个很显然的结论,不可能出现无限染色的情况.所以不会输出-1,当n为0或者1时,答案就 ...

  9. C# 判别系统版本以及Win10的识别办法

    首先得知道操作系统和主次版本的对应关系 我们可以用Environment.OSVersion来判断当前操作系统 && Environment.OSVersion.Version.Min ...

  10. MyBatis 源码解析SqlSession.getConnection(Connection异常:关闭或者不在Mybatis事务)

    从SqlSession的实现类SqlSessionTemplate源码中,看出相关方法被其内部类SqlSessionInterceptor(实现了InvocationHandler)代理 当调用Sql ...