admin 管理员组文章数量: 1086019
2024年3月13日发(作者:nutz框架好垃圾)
DOJOAPI中文参考手册,附加注解实例
Dojo体系架构总体上来看是一个分层的体系架构。最下面的一层是包系统,DojoAPI的结构与Java很类
似,它把所有的API分成不
同的包(package),当您要使用某个API时,只需导入这个API所在的包。包系统上面一层是语言库,这个语
言库里包含一些语言工具API,类似于Java
的util包。再上一层是环境相关包,这个包的功能是处理跨浏览器的问题。Dojo体系架构图
Dojo大部分代码都位于应用程序支持库,由于太小限制,图中没有列出所有的包。开发人员大部分时候都在调用
这个层中的API,比如,用IO包可以进行Ajax调用。
最上面的一层是Dojo的Widget系统,Widget指的是用户界面中的一个元素,比如按钮、进度条和树等。Dojo
的Widget基于MVC结构。它的视图作为一个Template(模板)来进行存放,在Template中放置着HTML和
CSS片段,而控制器来对该Template中的元素进行操作。Widget不仅支持自定义的样式表,并且能够对内部元
素的事件进行处理。用户在页面中只需要加入简单的标签就可以使用。在这一层中,存在数百个功能强大的
Widget方便用户使用,包括表格、树、菜单等。
常用包介绍
Dojo1.1.1提供了上百个包,这些包分别放入三个一级命名空间:Dojo,Dijit和DojoX。其中Dojo是核心功
能包,Dijit中存放的是Dojo所有的Widget组件,而DojoX则是一些扩展或试验功能,DojoX中的试验功能
在成熟之后有可能在后续版本中移入到Dojo或Dijit命名空间中。
由于Dojo包种类繁多,下面只列举了最常用的一些包及其功能,以方便读者有个初步了解或供以后查阅。
包名功能
不同的IO传输方式。script、IFrame等等;
拖放功能的辅助API。
这个包可以对字符串进行如下的处理:修整、转换为大写、
编码、esacpe、填充(pad)等等;
解析日期格式的有效助手;
事件驱动的API,支持AOP开发,以及主题/队列的功能;
用来撤销用户操作的栈管理器;
ng
ti
ons
ng
t
e
与后端服务(例如理解JSON语法的Web服务)进行通信;
颜色工具包;
Dojo的统一数据访问接口,可以方便地读取XML、JSON等不同格式的
数据文件;
基本动画效果库;
正则表达式处理函数库;
表单控件相关的Widget库;
页面布局Widget库;
这个包用于以弹出窗口方式使用Widget;
用于在页面上画各种统计图表的工具包;
很有用的集合数据结构(List、Query、Set、Stack、
);
实现加密功能的API(Blowfish、MD5、Rijndael、);
数学函数(曲线、点、矩阵);
提供反射功能的函数库;
将数据保存在本地存储中(例如,在浏览器中利用Flash的本地存储
来实现);
XML解析工具包;
djConfig
是dojo内置的一个全局设置对象,其作用是可以通过其控制dojo的行为
首先我们需要在引用前声明djConfig对象,以便在加载的时候才能够取得所设置的值,虽然
在0.3版本以后dojo
支持在加载后设置,但是强烈建议你把声明djConfig的代码作为第一段script
一个完整的djConfig对象定义如下(值均为dojo的默认值)
vardjConfig={
isDebug:false,
debugContainerId:"",
bindEncoding:"",
allowQueryConfig:false,
baseScriptUri:"",
parseWidgets:true
searchIds:[],
baseRelativePath:"",
libraryScriptUri:"",
iePreventClobber:false,
ieClobberMinimal:true,
preventBackButtonFix:true,
};
isDebug是一个很有用的属性,顾名思义,如果设置为真,则所有的输出有效,开发时应该设置为
true,发布时应
该设置为false
debugContainerId同样也是与调试有关的,如果不指定的话,调试信息将会直接利用输出,这
样可能会破坏页
面的整体布局,所以你可以指定任何一个可以作为容器的html元素的id作为调试信息输出容器
allowQueryConfig,这个属性指明dojo是否允许从页面url的参数中读取djConfig中的相关属性,当值为
true时,dojo会优先
从url参数中读取djConfig的其他属性,比如:
server/?ontainerId=divDebug
baseScriptUri,一般不需要设置,dojo会自动根据你引用的路径设置这个值,比如,,自动获取的值便是../dojo/
ps:如果你有多个工程需要同时引用的话,建议也把dojo当作一个独立的工程,引用的时候采用绝对
路径就可以了
parseWidgets,这个是可以控制dojo是否自动解析具有dojoType的html元素为对应的widget,如果你没有
使用任何Widget,
建议设置为false以加快dojo的加载速度
searchIds,这是一个字符串数组,定义了所有需要解析为widget的html元素的ID,如果ID不在其中的
html元素是不会被解
析的,当数组为空数组时,则所有具有dojoType的元素都会被解析
还有一个bindEncoding,是用来设置默认的bind请求的编码方式
至于其它的属性,不是用处不大,就是不知道有什么作用
在实际开发中,可以把djConfig的定义放在一个js文件里,并将其作为第一个引用的js文件,这样应该是最
方便的。
preventBackButtonFix在djConfig中设置preventBackButtonFix:false。这样保证了隐藏的表单
(hiddenIFRAME)将会添加到页面当中,如果不加入这段,r不会正常工
作。
译者注:设置方法就是在header中加入如下代码:
djConfig={isDebug:true,preventBackButtonFix:false};
版权声明:本文标题:DOJO API 中文参考手册 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710299303a566775.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论