zoukankan      html  css  js  c++  java
  • Dojo学习(一)—Hello Dojo

    1.Dojo简介:

      是一款优秀的javascript库,包含dojo、dijit、core、dojox等一系列的核心包,功能强大。

    2.Dojo使用:

      使用Dojo有两种方式:一种是使用CDNs;另一种是调用本地的Dojo文件。

    <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.10.0/dojo/dojo.js" data-dojo-config="async: true"></script>

    3.Dojo机制:

        AMD定义了两个全局变量:require和define。使用require可以调用需要的Dojo模块,使用define可以定义自己的模块。

    示例:

    <script>
            require([
                'dojo/dom',
                'dojo/dom-construct'
            ], function (dom, domConstruct) {
                var greetingNode = dom.byId('greeting');
                domConstruct.place('<i> Dojo!</i>', greetingNode);
            });
        </script>

       AMD采用异步方式,因此需要回调函数,将模块实例传入到回调函数中,但参数顺序一定要和引用模块的顺序一致,命名也最好一致。

       如上例中dojo/domdojo/dom-construct对应后面的dom、domConstruct

    •   使用define定义一个模块

       值得注意的是定义模块的文件位置直接关系到后面的使用路径。

    示例:demo/ myModule.js

    define([
        // The dojo/dom module is required by this module, so it goes
        // in this list of dependencies.
        'dojo/dom'
    ], function(dom){
        // Once all modules in the dependency list have loaded, this
        // function is called to define the demo/myModule module.
        //
        // The dojo/dom module is passed as the first argument to this
        // function; additional modules in the dependency list would be
        // passed in as subsequent arguments.
     
        var oldText = {};
     
        // This returned object becomes the defined value of this module 返回的是一个对象
        return {
            setText: function (id, text) {
                var node = dom.byId(id);
                oldText[id] = node.innerHTML;
                node.innerHTML = text;
            },
     
            restoreText: function (id) {
                var node = dom.byId(id);
                node.innerHTML = oldText[id];
                delete oldText[id];
            }
        };
    });

    使用方式:

      <script>
            require([
                'demo/myModule'
            ], function (myModule) {
                myModule.setText('greeting', 'Hello Dojo!');
     
                setTimeout(function () {
                    myModule.restoreText('greeting');
                }, 3000);
            });
        </script>

    4.Dojo中的dom/domReady!

      在js中要引用HTML节点为其添加样式、事件等时使用,其作用是等待DOM文件加载完成后,使用js,相当与window.onload的作用。

      要注意的是,该模块必须放置到所有引用模块的后面,在回调函数参数中不必添加。

    示例:

    require([
        'dojo/dom',
        'dojo/domReady!'
    ], function (dom) {
        var greeting = dom.byId('greeting');
        greeting.innerHTML += ' from Dojo!';
    });

    参考地址:http://dojotoolkit.org/documentation/tutorials/1.10/hello_dojo/

     

  • 相关阅读:
    使用C#实现计划任务(corn job)
    python 修改xml文件
    redis安装
    Nginx的安装
    nginx配置
    用泛型减少重复代码,使代码更合理、更优雅
    Tomcat server.xml配置详解
    二维码生成
    轻量级的中文分词工具包
    HTML解析利器
  • 原文地址:https://www.cnblogs.com/liuzhaoyang/p/3803751.html
Copyright © 2011-2022 走看看