dojo--djConfig

本文介绍了Dojo框架的两种配置方式及其应用场景。一种是在script标签中使用djConfig属性配置,另一种是在script加载前使用djConfig对象配置。同时,还探讨了Dojo的两种加载方式,即普通加载方式和XDomain加载方式,并解释了这些配置如何帮助开发者解决变量和方法未定义的问题。
摘要由CSDN通过智能技术生成

djConfig

Dojo允许开发人员通过djConfig改变全局配置来控制框架的使用。

djConfig参数控制的三件基本的事情:
    * Tell dojo to load resources for debugging along with the core libraries
    * Tell dojo which language and localization resources to load with the core libraries
    * Tell dojo where to find key resources in the event that you are using a customized naming scheme or a cross-domain (xdomain) build

常用的两种配置方式:
在script标签中用djConfig属性进行配置
    <script type="text/javascript"
            src="http://o.aolcdn.com/dojo/1.4.2/dojo/dojo.xd.js"
            djConfig="parseOnLoad: true, isDebug: true"></script>
           
代码中这样使用
    var cfg = scripts[i].getAttribute("djConfig");
    if(cfg){
        var cfgo = eval("({ "+cfg+" })");
        for(var x in cfgo){
            dojo.config[x] = cfgo[x];
        }
    }
           

在script加载前用djConfig对象进行配置
    <script type="text/javascript">
        var djConfig = {
            parseOnLoad: true,
            isDebug: true,
            locale: 'en-us',
            extraLocale: ['ja-jp']
        };
    </script>
    <script type="text/javascript" src="http://o.aolcdn.com/dojo/1.4.2/dojo/dojo.xd.js"></script>

    d.config ={
        isDebug: false,
        debugAtAllCosts: false
    };
   
代码中这样使用
    if(typeof djConfig != "undefined"){
        for(var opt in djConfig){
            d.config[opt] = djConfig[opt];
        }
    }

 

dojo的两种加载方式
普通加载方式,简单说就是使用get请求获取js文件,然后eval执行文件中的代码。
但是并没有这么简单,如果立即全部执行则会出现变量方法未定义的错误,因为通过dojo.require引用的包还没有完成加载。因此返回的js文件流不会立即全部执行,而是以dojo.require分开,分段执行的。
当遇到dojo.require则先加载dojo.require中请求的js,在依赖的js中遇到dojo.require还要进行迭代,然后再回过头来执行剩下的代码。

上面一种加载方式可以让你放心的使用dojo.require来加载依赖的库,而不用担心代码的执行顺序问题造成的变量和方法未定义错误。但是当你的代码 出现使用或逻辑错误的时候,你去很难用firebug等调试工具定位到你的错误,因为使用eval执行的代码在调试工具是没办法定位源文件的%^%(你执 行的是放在内存中的代码,而不是源文件中的,包括使用innerHTML插入的js片段也存在同样的问题!@#$%……)。

XDomain (cross-domain)加载方式,先把js的uri都放进一个数组里,预先加载数组中的js依赖的库,然后加载uri指向的js。使用 doucment.write("<script src='uri'></script>")的方式加载。

 

====

debugAtAllCosts : true 可以让dojo按cross-domain方式加载js文件

 

isDebug: true
这个参数对已经启用Firebug的Firefox 是不起作用的. 所以包含这个参数只是使你可以在 IE, Safari, 和没有安装Firebug的 Firefox 上调试Dojo程序.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值