文章目录

Purpose

利用Dojo的packaging

system,只要引入一个简单的可定制的script(dojo.js)文件,通过简单的代码就可以从Dojo的source
tree中找到并获得(下载)你所需的packages,当然这些packages是你应用程序需要的。这些功能实现不需要你了解Dojo源码结构,也不
需要为你下载的script file加script标签。

对于Dojo
0.3以上版本,dojo.hostenv.conditionalLoadModule()方法已经被dojo.kwCompoundRequire
()方法替换。dojo.hostenv.moduleLoaded()也已经被dojo.provide()替换。如果你在Dojo0.3+中用老的方
法,请看compatibility package.

Example package file format(包文件中的格式)

// dojo/src/webui/widgets/package.js中的内容


dojo.kwCompoundRequire({
common: ["dojo.webui.widgets.parse"] // a generic dependency
});

dojo.provide("dojo.webui.widgets.*");

Definitions

kwCompoundRequire
这个方法调用会根据dojo的执行环境,选择性的下载文件,如src\webui\widgets\parse.js
provide
大致意思是告诉用户,dojo提供了dojo.webui.widgets.包,你可以dojo.require("dojo.webui.widgets.");来访问,这样会把kwCompoundRequire的参数中都下载的。
A Longer Example

这段代码的位置在 dojo/src/foo/package.js:


dojo.kwCompoundRequire({
common: ["dojo.foo.Foo", "dojo.foo.Bar"],
browser: ["dojo.foo.Baz"]
});

dojo.provide("dojo.foo.*");

这一大堆代码告诉我们,当我们在浏览器环境中写dojo.require("dojo.foo.*")时,Foo.js, Bar.js, 和 Baz.js将被包括,当在command line(命令行运行时),只有Foo.js and Bar.js被包括。

Including Dojo from source files

如果你要用dojo,你只需要在你的html代码中加入

<script type="text/javascript" src="/dojo/dojo.js"></script>

如果你要加载Dojo的某些包,你只需要简单的用dojo.require就可以实现。例如你要加载Dojo的事件模块,你只需要dojo.require("dojo.event.Event");

自己打包dojo.js文件(原文写的缺少步骤,自己组织了下)

1、从http://svn.dojootoolkit.or… 下载源码。偶用小绿毛龟TortoiseSVN
2、安装jdk,ant包。
2、把foo.profile.js放到源码的buildscripts\profiles文件夹下( D:\zkj\dojosource\buildscripts\profiles)

foo.profile.js 文件名称


var dependencies = [
"dojo.io.",
"dojo.event.
",
"dojo.xml.",
"dojo.graphics.
",
"dojo.io.BrowserIO",
"dojo.webui.",
"dojo.webui.widgets.foo.
",
];

load("getDependencyList.js");
3、在D:\zkj\dojosource\buildscripts文件夹下执行命令 ant -Dprofile=foo clean release
4、在D:\zkj\dojosource\release文件夹下你就看到你自己打包的dojo了。

自己打包有什么好处:
1、可以根据自己的定义(.profile.js),确定我们预先把哪些模块直接打包到dojo.js文件中。
2、对于dojo通过xmlhttp下载js代码效率上我是有写担心,如果带项目运行阶段,我们完全可以把用到的所有模块打包到dojo.js中,减少的动态加载。

文章目录