网上的关于Dojo的文章很多,我从项目经历上阐述自己的一些用法、示例,仅供参考。Dojo是一个强大的面向对象JavaScript框架。主要由三大模块组成:Core、Dijit、DojoX。Core提供Ajax,events,packaging,CSS-based querying,animations,JSON等相关操作API。Dijit是一个可更换皮肤,基于模板的WEB UI控件库。DojoX包括一些创新/新颖的代码和控件:DateGrid,charts,离线应用,跨浏览器矢量绘图等。
-------获取dojo相关对象-----------
1.dojo.byId() :等同于 document.getElementById(),根据DOM节点的ID获取该节点DOM对象。
2.dijit.byId() : 是获取由dojo widget 系统创建的对象,然后你可以调用这个这个对象的方法或改变这个对象的属性。
-------dojo监听事件-----------
3.dojo.connect() :为前端操作创建事件监听器.
1
2
3
4
5
|
/* Set up a connection */
dojo.connect(
/*Object|null*/
obj,
/*String*/
event,
/*Object|null*/
context,
/*String|Function*/
method)
// Returns a Handle
|
4. dojo.disconnect(/*Handle*/handle); 解除注册监听器 /* Tear down a connection */
--------dojo的json处理----------
5.dojo.fromJson(/*String*/ json) //把json string转化为json object
6.dojo.toJson(/*Object*/ json, /*Boolean?*/ prettyPrint) //把json object转化为json string.
1
2
3
4
5
6
7
8
9
|
var
o = {a:1, b:2, c:3, d:4};
dojo.toJson(o,
true
);
//pretty print
/* produces ...
'{
"a": 1,
"b": 2,
"c":3,
"d":4
}'
|
-------dojo的ajax操作-----------
7.dojo.xhrGet(/*Object*/args) :ajax的GET提交
1
2
3
4
5
6
7
8
9
10
11
12
|
dojo.addOnLoad(
function
( ) {
dojo.xhrGet({url :
"someText.html"
,
//the relative URL
// Run this function if the request is successfulload :
function
(response, ioArgs) {
console.log(
"successful xhrGet"
, response, ioArgs);
dojo.byId(
"foo"
).innerHTML= response;
//always return the response back
},
// Run this function if the request is not successfulerror :
function
(response, ioArgs) {
console.log(
"failed xhrGet"
, response, ioArgs);}
});
});
|
8.dojo.xhrPost(/*Object*/args) :ajax的POSt提交,支持text、json、xml等提交形式。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
dojo.xhrPost({
url :
"/place/to/post/some/raw/data"
,
postData :
"{foo : 'bar'}"
,
//a JSON literal
handleAs :
"json"
,
load :
function
(response, ioArgs) {
/* Something interesting happens here */
return
response;
},
error :
function
(response, ioArgs) {
/* Better handle that error */
return
response;
}
});
|