网上的关于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; } });