• Dojo配置


    1.引言

          在前面的文章里面我们介绍了一下AMD规范,什么是AMD规范,我们用AMD规范可以做什么,我们还说了Dojo框架对AMD规范进行了实现,进而开发了一系列的模块让我们进行调用,现在就让我们来学习一下Dojo框架,看看Dojo到底提供给我们什么?在博客中我主要引入ArcGIS API的init.js文件(因为ArcGIS API是基于dojo的,主要学会了ArcGIS API 便相当于学会了Dojo)

    2.Dojo配置

    2.1 Dojo存在默认配置

          话不多说,我们先看一段非常简单的代码:

    • 首先引入我们的init.js文件和相应的css文件
    <link  rel="stylesheet"  type="text/css" href="http://localhost/arcgis_js_api/library/3.17/3.17/dijit/themes/tundra/tundra.css"/>
        <link  rel="stylesheet"  type="text/css" href="http://localhost/arcgis_js_api/library/3.17/3.17/esri/css/esri.css" />
        <script  type="text/Javascript" src="http://localhost/arcgis_js_api/library/3.17/3.17/init.js"></script>
    
    
    • 5
    • 我们看一段非常熟悉的代码:
    require(["dojo/dom"],function(dom){
                dom.byId("...")
            })

    解释:前面我们介绍了AMD规范,我们就应该理解,require其实就是异步加载js文件,但是大家有没有一点疑问呢?dojo框架怎么知道我们的js文件存放在什么位置呢?dojo框架又要去那里去查找我们的js文件呢?按照一般的步骤,我们应该告诉js文件的路径,然后dojo才可以去加载我们的js文件。按照我们的思路:dojo一定会存在默认的配置,其中默认的配置会存放dojo框架js文件的路径,然后dojo根据配置去加载js文件。事实上我们想的是对的,接下来我们查看一下dojo都有那一写默认的配置呢?

    2.2 查看dojo默认配置

          在本示例中,主要介绍两个模块,一个叫做dojo/_base/config,另外一个模块叫做dojo/json

    • dojo/_base/config用于加载dojo的配置文件(加载进来是一个json对象)
    • dojo/json模块我们经常使用,用于json对象和字符串的相互转换
    • 实例中的主要意思是:将dojod配置转换成字符串,用对话框显示出来
        <script>
            require(["dijit/registry", "dojo/parser", "dojo/json", "dojo/_base/config", "dijit/Dialog", "dojo/domReady!"]
                    , function(registry, parser, JSON, config) {
                        parser.parse();
                        var dialog = registry.byId("dialog");
                        dialog.set("content", "<pre>" + JSON.stringify(config, null, "	") + "```");
                        dialog.show();
                    });
        </script>
    
    <div id="dialog" data-dojo-type="dijit/Dialog" data-dojo-props="title: 'dojoConfig / dojo/_base/config'"></div>



    • 运行结果:

    这里写图片描述

    解释:在默认配置中与模块相关的配置属性主要为:baseUrlpackages,其中baseUrl代表着dojo默认去哪一个文件目录下面去加载js文件,packages是一个数组,其中记录着每一个模块所对应的路径。比如我们require(["dojo/dom"],function(){}),便是去查找文件:

    这里写图片描述

    其中C:inetpubwwwroot代表着网站的根目录,也就是http://localhost,现在大家应该明白dojo/dom实际上是加载:http://localhost/arcgis_js_api/library/3.17/3.17/dojo/dom.js了吗?可能大家还是有一些疑问这个路径是怎么得到的呢?现在我就给大家描述一下这个过程:require加载dojo/dom这个模块,首先dojo先去配置文件的packages(查找name属性)中查找,如果没有找到,那么就会去baseUrl查找,如果还没有找到,报错。

    2.3 修改dojo配置

          我们通过上一实例发现dojo存在着默认配置,那么问题来了?我们如何添加我们自己的配置呢?或者说如何去修改dojo的默认配置呢?dojo框架提供给我们一个对象叫做dojoConfig,我们可以通过设置该对象修改dojo的默认配置,接下来我们添加一个我们自己的配置项:

     var dojoConfig={
                myattr:"12345"//这是我随便写的
            }
    • 1
    • 2
    • 3
    • 运行结果

    这里写图片描述

    解释:因为我给dojoConfig对象添加了一个属性叫做myattr,所以该属性被添加到了dojo的配置文件中,需要注意的属dojoConfig必须在init文件加载之前设置,不然该对象设置无效,现在大家可能又有一些疑问:我随便添加了一个属性叫做myattr,这个属性没有什么作用啊?是的!如果添加一些无意义的属性确实是没有任何作用,但是在本实例中我们可以看到一点,我们可以在dojoConfig中设置我们自定义的属性,该属性是全局的,我们可以通过dojo/_base/config模块在任意的地方调用我们全局的属性,这对于我们开发有着至关重要的作用

    3.总结

          在本篇博客中主要简单的介绍了一下dojo的配置,以及如何添加我们自己的配置项。可能大家还不是很懂dojoConfig的一些高级作用,不要担心,这个将在以后的博客中说明。

  • 相关阅读:
    VMware NAT 静态IP模式下上网
    无法连接虚拟设备 ide1:0
    C# ContainsKey与TryGetValue方法探究
    深入讲解以太坊的数据存储
    sqlserver之查询数据插入新建表@已存在表(oracle)
    python之列表、元祖、字典和数组的使用
    python之列表、元组、字典、数组对比
    python之ConfigParser介绍
    从业人员证券交易行为合规管理测试
    window系统自动设置时间同步脚本
  • 原文地址:https://www.cnblogs.com/fu-fu/p/8611000.html
Copyright © 2020-2023  润新知