文档章节

DOJO 基本对象定义

triankg
 triankg
发布于 2015/01/06 11:38
字数 643
阅读 661
收藏 6

DOJO 导入  基于AMD  DOJO 配置 + 免费的CDN服务(不想用就下载DOJO使用自己的路径) 例如下


<script>
    dojoConfig= {
        has: {
            "dojo-firebug": true
        },
        parseOnLoad: false,
        foo: "bar",
        async: true
    };
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.3/dojo/dojo.js"></script>
DOJO 配置介绍

参考资料  http://dojotoolkit.org/documentation/tutorials/1.10/dojo_config/


dojoConfig 的配置文件一定要在dojo.js前面, 虽然暂时还不知道这个配置里面有哪些东西,不过是基于requirejs的应该和 require.config({...}) 中有相似的部分 下面有待验证

配置项:

  • baseUrl: amd module js 根路径  同requirejs baseUrl
  • packages: 一个数组 提供了 包名和路径的映射
  • path: AMD module 名称和路径映射 参考requirejs config
  • async: 是否异步加载AMD module 可选值 true, false, legacyAsync(将 loader 永久地置为 legacy cross-domain mode)
  • map : Allows you to map paths in module identifiers to different paths  例

map: {
            // Instead of having to type "dojo/domReady!", we just want "ready!" instead
            "*": {
                ready: "dojo/domReady"
            }
 }
那么在引用dojo/domReady!的时候 就可以直接使用 require(['ready!']) 替代   require(['dojo/domReady!'])
  • parseOnload: 当DOM 和所有的相关依赖都加在完毕的时候调用dojo/parser解析页面  
  • deps: 一个数组资源  当dojo加载的时候  需要立即加载这些资源
  • callback: The callback to execute once deps have been retrieved
  • waitSeconds: 加载AMD module 超时设定  默认是0 永不超时
  • cacheBust:如果未true 可以防止 module 缓存 会在URL 上面添加时间戳

 

1. dojo 对象定义 

/**
 * 测试使用 类创建
 */
declare("com.zsq.C1",null,{
	id:null,
	name:null,
	getName:function(){
		return this.name;
	},
	constructor:function(){
		// 特殊的方法  在类实例化的时候会执行该方法
	}
});

/**
 * 相当于JAVA的匿名内部类
 */
var c2 = declare(null,{
	id:null,
	name:null,
	getId:function(){
		return this.id;
	}
});

/**
 * 子类
 */
var c3 = declare(c2,{
	code:null,
	getCode:function(){
		return this.code;
	}
});

/**
 * 多继承
 */
var c4 = declare([c3,c2],{
	type:null,
	getType:function(){
		return this.type;
	}
});

2. 封装为符合AMD规范的对象  // 其实也就是一个requirejs定义模块包裹一下 文件路径  my/Person.js 

define(["dojo/_base/declare"], function(declare){
  return declare(null, {
    constructor: function(name, age, residence){
      this.name = name;
      this.age = age;
      this.residence = residence;
    }
  });
});

3. 对象的使用  同样基于requirejs 通过文件路径查找相应的JS 这个和配置有关 这个这里不描述

require(["my/Person"], function(Person){
  var folk = new Person("phiggins", 42, "Tennessee");
});

可以说是只是使用了Dojo的类定义封装

4. 静态对象   参照JAVA 其实所谓的静态就是一个全局的对象  如:java 的class 定义对象  JS 也一样  只是使用一个全局的对象来实现static

define(['dojo/_base/declare'], function(declare){
  var Demo = declare(null, {
    constructor: function(){
      console.debug("this is Demo object #" + Demo.counter++);
    }
  });

  Demo.counter = 0;

  return Demo;
});


© 著作权归作者所有

triankg
粉丝 12
博文 112
码字总数 29848
作品 0
无锡
项目经理
私信 提问
Dojo 的代码重用

引言 Dojo 工具包为程序员提供了很多功能丰富的控件,但是在实际应用中,很多时候程序员需要自定义控件来满足实际需求,如开发统一 UI 风格的控件库,开发具有通用逻辑组合的 Dojo 控件和更方...

IBMdW
2011/09/25
2.2K
0
一种利用dojo动态创建图形报表的方法

  【IT168 技术】web2.0时代的到来,使得互联网进入全民互动时代。它所提倡的理念是:“技术是根,用户体验为本”,用户体验的重要性可见一斑。   而提升用户体验,我们就不得不提一下d...

it168网站
2013/09/09
0
0
Dojo Mobile 1.7 入门

最新版的移动 Web 开发框架 Dojo Mobile 1.7,是 Dojo Toolkit 的一个扩展。本文将使您了解如何从主干网址下载 Dojo 1.7,以及如何在您的应用程序中使用 Dojo Mobile。您还将探索它提供的各种...

IBMdW
2012/12/18
4.2K
8
使用 Dojo 提供的灵活多样的布局方式

Dojo 提供了多种基本的布局方式,使用这些布局,可以有层次,有意义的组织控件,使得 web 界面获得更好的用户体验。 下面将从常见的几种控件出发,介绍 Dojo 常见的布局方式,让我们一起学习...

红薯
2010/08/08
6.2K
0
结合 GFX,DnD 与 Dijit 创建基于 Dojo 的 Web 图形类应用

GFX(dojox.gfx)作为 Dojo 扩展组件之一,封装了底层浏览器中实际的图形引擎,使开发人员具备了 Web 绘图的基本能力,是此类应用的基础。同时,作为 Dojo 核心组件的 DnD(dojo.dnd),则实...

红薯
2010/08/08
724
1

没有更多内容

加载失败,请刷新页面

加载更多

佳博标签打印问题-

由于网页打印不行,要么sdk 写成activex,这样浏览器支持又有局限。 因此,采用客户端编写打印服务启动,定时轮询服务端打印队列,从服务的获取打印队列进行打印。 服务端web 点击打印,讲打...

mellen
20分钟前
2
0
Jmeter利用JMXMon插件监控服务器JVM情况

1、Jmeter下载JMXMon插件 2、Jmeter 添加 JMXMon请求 远程监控JVM状态需要在JVM启动时候加上一段参数才行,在tomcat bin目录下找到catalina.sh 在# OS specific support. $var _must_ be set...

覃光林
21分钟前
3
0
Qt编写安防视频监控系统(界面很漂亮)

一、前言 视频监控系统在整个安防领域,已经做到了烂大街的程序,全国起码几百家公司做过类似的系统,当然这一方面的需求量也是非常旺盛的,各种定制化的需求越来越多,尤其是这几年借着人脸...

飞扬青云
26分钟前
3
0
Python的requests库中的Put方式使用

1.后端接口 @PutMapping public ResponseEntity<MyObject> putMyObject( @RequestBody MyObject myObject) { ... } Put请求参数在请求体里面。 1.前端请求 import requestsimpo......

亚林瓜子
27分钟前
1
0
全站加速(DCDN)- IP应用加速产品解读

5月22日下午15点,阿里云全站加速(DCDN)-IP应用加速如期发布。IP应用加速是阿里云自主研发的一款更高效、更安全、更便捷的动态加速产品,结合阿里云CDN本身的资源优势,利用就近接入、智能...

迷你芊宝宝
31分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部