当前位置:文档之家› DOJO API 中文参考手册

DOJO API 中文参考手册

DOJO API 中文参考手册,附加注解实例Dojo 体系架构总体上来看是一个分层的体系架构。

最下面的一层是包系统,Dojo API 的结构与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 方便用户使用,包括表格、树、菜单等。

常用包介绍Dojo 1.1.1提供了上百个包,这些包分别放入三个一级命名空间:Dojo,Dijit 和DojoX 。

其中Dojo 是核心功能包,Dijit 中存放的是Dojo 所有的Widget 组件,而DojoX 则是一些扩展或试验功能,DojoX 中的试验功能在成熟之后有可能在后续版本中移入到Dojo 或Dijit 命名空间中。

由于Dojo 包种类繁多,下面只列举了最常用的一些包及其功能,以方便读者有个初步了解或供以后查阅。

djConfig是dojo 内置的一个全局设置对象,其作用是可以通过其控制dojo 的行为dojo.string 这个包可以对字符串进行如下的处理:修整、转换为大写、编码、esacpe、填充(pad)等等;dojo.date 解析日期格式的有效助手;dojo.event 事件驱动的API,支持AOP 开发,以及主题/队列的功能;dojo.back 用来撤销用户操作的栈管理器;dojo.rpc与后端服务(例如理解JSON 语法的Web 服务)进行通信;dojo.colors颜色工具包;dojo.dataDojo 的统一数据访问接口,可以方便地读取XML、JSON 等不同格式的数据文件;dojo.fx基本动画效果库;dojo.regexp正则表达式处理函数库;dijit.forms表单控件相关的Widget 库;yout页面布局Widget 库;dijit.popup这个包用于以弹出窗口方式使用Widget ;dojox.charting用于在页面上画各种统计图表的工具包;dojox.collections很有用的集合数据结构(List 、Query 、Set 、Stack 、Dictionary...);dojox.encoding实现加密功能的API(Blowfish、MD5、Rijndael、SHA...);dojox.math数学函数(曲线、点、矩阵);dojo.reflect提供反射功能的函数库;dojox.storage将数据保存在本地存储中(例如,在浏览器中利用Flash 的本地存储来实现);dojox.xml XML 解析工具包;首先我们需要在引用dojo.js前声明djConfig对象,以便在加载dojo.js的时候才能够取得所设置的值,虽然在0.3版本以后dojo支持在加载后设置,但是强烈建议你把声明djConfig的代码作为第一段script一个完整的djConfig对象定义如下(值均为dojo的默认值)<script type="text/javascript">var djConfig={isDebug:false,debugContainerId:"",bindEncoding:"",allowQueryConfig:false,baseScriptUri:"",parseWidgets:truesearchIds:[],baseRelativePath:"",libraryScriptUri:"",iePreventClobber:false,ieClobberMinimal:true,preventBackButtonFix:true,};</script>isDebug是一个很有用的属性,顾名思义,如果设置为真,则所有dojo.Debug的输出有效,开发时应该设置为true,发布时应该设置为falsedebugContainerId同样也是与调试有关的,如果不指定的话,调试信息将会直接利用document.write输出,这样可能会破坏页面的整体布局,所以你可以指定任何一个可以作为容器的html元素的id作为调试信息输出容器allowQueryConfig,这个属性指明dojo是否允许从页面url的参数中读取djConfig中的相关属性,当值为true时,dojo会优先从url参数中读取djConfig的其他属性,比如: http://server/dojoDemo.htm?djConfig.debugContainerId=divDebugbaseScriptUri,一般不需要设置,dojo会自动根据你引用dojo.js的路径设置这个值,比如,<script type="text/javascript"src="../dojo/dojo.js"></script>,自动获取的值便是../dojo/ps:如果你有多个工程需要同时引用dojo.js的话,建议也把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。

这样保证了隐藏的表单(hidden IFRAME)将会添加到页面当中,如果不加入这段,dojo.undo.browser不会正常工作。

译者注:设置方法就是在header中加入如下代码:<script language="JavaScript"type="text/javascript">djConfig={isDebug:true,preventBackButtonFix:false};</script>djConfig是dojo内置的一个全局设置对象,其作用是可以通过其控制dojo的行为首先我们需要在引用dojo.js前声明djConfig对象,以便在加载dojo.js的时候才能够取得所设置的值,虽然在0.3版本以后dojo支持在加载后设置,但是强烈建议你把声明djConfig的代码作为第一段s cript 一个完整的djConfig对象定义如下(值均为dojo的默认值)<s cript type="text/javas cript">var djConfig={isDebug:false,debugContainerId:"",allowQueryConfig:false,bases criptUri:"",parseWidgets:truesearchIds:[],baseRelativePath:"",librarys criptUri:"",iePreventClobber:false,ieClobberMinimal:true,preventBackButtonFix:true,};</s cript>isDebug是一个很有用的属性,顾名思义,如果设置为真,则所有dojo.Debug的输出有效,开发时应该设置为true,发布时应该设置为falsedebugContainerId同样也是与调试有关的,如果不指定的话,调试信息将会直接利用document.write输出,这样可能会破坏页面的整体布局,所以你可以指定任何一个可以作为容器的html元素的id作为调试信息输出容器allowQueryConfig,这个属性指明dojo是否允许从页面url的参数中读取djConfig中的相关属性,当值为true时,dojo会优先从url参数中读取djConfig的其他属性,比如:http://server/dojoDemo.htm?djConfig.debugContainerId=divDebugbases criptUri,一般不需要设置,dojo会自动根据你引用dojo.js的路径设置这个值,比如,<script type="text/javas cript"src="../dojo/dojo.js"></s cript>,自动获取的值便是../dojo/ps:如果你有多个工程需要同时引用dojo.js的话,建议也把dojo当作一个独立的工程,引用的时候采用绝对路径就可以了parseWidgets,这个是可以控制dojo是否自动解析具有dojoType的html元素为对应的widget,如果你没有使用任何Widget,建议设置为false以加快dojo的加载速度searchIds,这是一个字符串数组,定义了所有需要解析为widget的html元素的ID,如果ID不在其中的html元素是不会被解析的,当数组为空数组时,则所有具有dojoType的元素都会被解析至于其它的属性,不是用处不大,就是不知道有什么作用在实际开发中,可以把djConfig的定义放在一个js文件里,并将其作为第一个引用的js文件,这样应该是最方便的。

相关主题