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会自动根据你引用的路径设置这个值,比如,

type="text/javascript"

src="../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};


本文标签: 设置 功能 元素 引用 页面