网上的关于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() :为前端操作创建事件监听器.
/* 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.
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提交
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等提交形式。
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;
}
});