dojo Quick Start/dojo入门手册--package机制
说完了dojo里的类继承机制,不得不说说package机制。
主要用到的有
dojo.require
dojo.provide
dojo.registerModulePath
dojo.require
dojo.require就是引入相应路径文件下的js文件,现在已经有很多library这样做了。现在我们假设要用project/dojo-lib/dojo/string.js
dojo中的顶层目录就是dojo.js所在目录的上一层,即"project/dojo-lib/",而dojo.js放在project/dojo-lib/dojo/dojo.js 所以我们就这样:
dojo.require("dojo.string");
比如要引用其他目录下的:
project/dojo-lib/dojox/dtl/_base.js,则这样:dojo.require("dojox.dtl._base"); project/dojo-lib/dojox/grid/Grid.js dojo.require("dojox.grid.Grid");
说白了,就和ruby之类的require很相似。
dojo.provide
要自己编写一个package怎么办,那就利用dojo.provide。比如要写在:project/dojo-lib/com/javaeye/fyting/Package1.js 那么在对应的Package1.js中第一行需要这样写:
dojo.provide("com.javaeye.fyting.Package1");
类似java里的package声明,是吧?
dojo.registerModulePath
那要是我写的js文件不想和dojo放在一起怎么办呢,那就用registerModulePath。假设要放在:
project/js/com/javaeye/fyting/Package2.js
Package2.js和上面的Package1.js一样的写法,不需要作特殊变化,就这样就行:
dojo.provide("com.javaeye.fyting.Package2");
在使用时,需要指名这个Package2.js所在的位置,
dojo.registerModulePath("com","http://www.cnblogs.com/js/com");
只需要注意这里的相对路径是相对dojo.js来的。
我们假设所有以com.javaeye开头的js都放在一起,而com.microsoft的放在另外的地方,为了防止冲突,可以这样:
dojo.registerModulePath("com.javaeye","http://www.cnblogs.com/js/com/javaeye");
dojo.registerModulePath("com.microsoft","http://www.cnblogs.com/javascript/com/microsoft");
总得来说,package机制是开发大型项目必须的,但是造成了调试困难,使用dojo.require引入js出错时,根本不知道是什么原因,所以调试时最好手动引入js,dojo的test也是这么搞的。还有js框架中的各种实现类继承的手法,也造成调试困难,dojo还随地抛出个Error,又缺少java那样的error statck,根本不知道错误根源在哪儿。所以,期待js原生地支持这些。
dojo Quick Start/dojo入门手册--package机制相关推荐
- dojo Quick Start/dojo入门手册--面向对象,定义Class
下一步我们看看dojo里如何定义Class: dojo.declare("Customer",null,{ constructor:function(name){ ...
- dojo Quick Start/dojo入门手册--dojo.hitch scope/context
既然用到了xmlhttp,一个常见的问题就是回调函数的scope/context.在prototype.mootools里我们常用Function.bind,在dojo中,做相同事情的东西叫做dojo ...
- dojo Quick Start/dojo入门手册--xmlhttp dojo.xhrGet
OK,介绍了简单的DOM操作方法,接下来该到Ajax的传统项目-XmlHttp了.在使用xmlhttp时,需要注意到编码的问题,要让dojo默认绑定为utf-8怎么办呢?很简单,只需要修改一下引入do ...
- dojo Quick Start/dojo入门手册--开始使用dojo.js
2006年初,dojo还是0.22的时候就很关注它的发展,可一直没有在实际项目中使用.一来是由于文档的缺少,而来是dojo的相关介绍总是让人望而生畏. 到现在都如此,第一个hello world就搞了 ...
- dojo Quick Start/dojo入门手册--json
那要是我想更换获取到的数据类型,比如json?xml?修改handleAs即可,如: handleAs: "json" dojo.xhrGet({ url: "h ...
- Medusa(美杜莎)和Hydra(九头蛇)快速入门手册:02
本文是Medusa和Hydra快速入门手册的第二部分,第一部分的传送门这两篇也是后续爆破篇的一部分,至于字典,放在最后,后续会把祖传的几十G字典准备好 Hydra入门使用手册 vanHauser Th ...
- rocketmq 顺序消费_必须先理解的RocketMQ入门手册,才能再次深入解读
推荐阅读一下下 2020年后想跳槽?MQ.ZK.Nginx.Kafk等分布式技术你都掌握了? 阿里架构师推荐学习的<RabbitMQ实战指南>,渣渣的你都看过吗? RocketMQ入门手册 ...
- 推荐算法炼丹笔记:CTR点击率预估系列入门手册
CTR点击率预估系列家谱 炼丹之前,先放一张CTR预估系列的家谱,让脉络更加清晰. (一)FiBiNET:结合特征重要性和双线性特征交互进行CTR预估 1.1 背景 本文发表在RecSys 2019 ...
- dojo.publish 和 dojo.subscribe
这俩个函数都与事件紧密相关. -- dojo.subscribe(/*String*/topic, /*Object|null*/context, /*String|Function*/method) ...
最新文章
- python re match groups_python re.match与re.search的区别
- (已解决)module ‘tensorflow‘ has no attribute ‘app‘
- hashmap 判断key是否存在
- 我想吐槽“吐槽 Google 换新 Logo 的人”
- jQuery ajax实现
- 【代码收集】提前载入贴图
- Nginx 的常用命令
- oracle application r11i,有人在linux 2.1AS下安装过R11i吗?请帮忙解决如下问题
- [JBoss] JNDI与JBossNS
- 2921年3月计算机二级office,国家二级计算机考试office怎么报名
- 冯 诺依曼计算机体系结构要点,冯诺依曼体系结构计算机的要点和工作过程
- Linux 下查看内存问题
- gtx 750 linux驱动下载,Ubuntu 12.04安装NVIDIA GTX750显卡驱动
- LVS-NAT基于NFS存储部署Discuz
- 用python把图片换成蓝底_用python 将蓝底照片转化为白底照片
- win10如何安装mysql_win10安装mysql详细步骤
- 计算机休眠查询,可不可以查询电脑待机记录
- 努力学习 努力奋斗 踏步而立
- 创始人是公关营销的关键所在
- 看看你的眼力了,是眼睛欺骗大脑,还是大脑控制眼睛~~
热门文章
- php笔记之-PHP文件系统
- 一直出现 Enter passphrase for key '/root/.ssh/gitkey12.pub'
- String 类型的相关转换
- 凯文·凯利:下一个5000天的12个必然趋势!
- 前美团产品专家罗鑫:谈谈我对增长这件事的理解
- 一夜吸粉200万被封杀,微信都有哪些逆鳞?
- 玩具租赁到底在解决用户什么痛点?
- hadoop 2.x HA 出现ssh不能解析问题记录。
- 成为Web开发大师你必须知道的7件事情
- 《jQuery、jQuery UI及jQuery Mobile技巧与示例》——9.17 技巧:使用多个列