Dojo-API介绍

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

posted @ 2011-07-26 18:15  左正  阅读(414)  评论(0编辑  收藏  举报