• DOJO试用手记4dojo基础【原创】


      前面说了dojo在ajax方面的一些个东西,感觉要理解透彻还有些dojo内部的东西需要理解,所以想好好看一下dojo的东西,恶补一阵:-)
      看了会官方一些个文档,有了些许体会。
      dojo.js被包含进来后,一些对象和函数就可以用了,在用JSEclipse编辑的时候,可以看到一些,不过是包含在dojo.js中的,官网说还包括boostrap文件里的,我查了下,有bootstrap1.js和bootstrap2.js,不过那些对象直接显示不出来,估计有什么地方要设置,弄清楚后再补上来。
      可用的东东有:
      1.dojo.render对象:该对象存放了dojo运行环境的一些信息。
      dojo.render.name:根据dojo.render.name = navigator.appName,可以知道这是浏览器的名称,但是直接显示出来是空的,估计还没有被赋值,运行

    1 dojo.render.name = navigator.appName;
    2 alert(dojo.render.name);


    我的出来的是:Microsoft Internet Explorer。
      dojo.render.os:看名字就知道与操作系统有关,事实确实如此。这个属性直接打印出来是[object Object],可以知道是一个对象。查了下源代码,发现这个对象有3个属性:dojo.render.os.osx,当操作系统为"MacOS"取值为true;dojo.render.os.linux,当操作系统为"Linux"的时候为true;dojo.render.os.win,Windows系统取值为true。3个属性的默认值都为false,一进dojo,则某一个属性被赋值为true,我的Windows系统当然是dojo.render.os.win为true了。根据源码,若不是这3种系统,dojo.render.os.linux将赋值为true。
      dojo.render.ver,官网上说与dojo.version一样,但我一打印发现不对,查了下代码,发现如下一段:dojo.render.ver = parseFloat(navigator.appVersion, 10),是与浏览器版本号有关,我这里dojo.render.ver的值为4。再找dojo.version,发现这么一段:

    dojo.version = {
        major: 
    0, minor: 2, patch: 2, flag: "",
        revision: Number(
    "$Rev: 2836 $".match(/[0-9]+/)[0]),
        toString: 
    function() {
            
    with (dojo.version) {
                
    return major + "." + minor + "." + patch + flag + " (" + revision + ")";
            }
        }
    };


    将dojo.version打印一下,是0.2.2(2836),上面一段的结果。
      dojo.render.html,这也是一个对象,它有好几个属性。dojo.render.html.capable,宿主环境是否支持html,一般来说,都是true。其它几个是与浏览器类型有关的,都是布尔类型。dojo.render.html.moz,当浏览器为Mozilla或者Mozilla核心的浏览器(例如 Firefox)时为true; dojo.render.html.safari,使用苹果的Safari浏览器的时候为true,dojo.render.html.ie,平常的机器这个属性都是true,因为我们基本是用Microsoft Internet Explorer,即ie浏览器;dojo.render.html.opera,使用Opera浏览器的时候为true;dojo.render.html.khtml,使用KHTML浏览器(例如Konqueror,但是我还就真没听过这种KHTML浏览器,其它的都知道,看来还是知识不够,唉~)的时候为true。dojo.render.html对象主要是用来判断浏览器类型的。我的机器上dojo.render.html.ie为true。
      其它还有dojo.render.svg,dojo.render.vmldojo.render.swf,dojo.render.swt,由上面的资料,可以知道是对SVG、VML、SWF、SWT的支持,它们都有个capable属性,表示是否支持该技术,ie5.0以上版本支持VML,所以我的dojo.render.vml.capable为true,SVG需要装插件,所以不支持该项,dojo.render.svg.capable为false,dojo.render.swf.capable也为false,这里的swf不是指flash的swf,而是Simple Web Framework,Simple Web Framework (SWF)是一个基于事件的web框架.它很适合于那些想要开发胖客户端Web应用程序但又不想转向JSF的Struts开发人员。SWF跟Struts一样也是构建在Jakarta commons基础之上,但使用一个不同的request processor。SWF事件模型支持基于XmlHttpRequest的事件提交。至于dojo.render.swt,不清楚了,难道与java中的SWT有关系?这四个对象的其它属性,在源码中居然没看到相应代码??以后弄明白再回来补过。
      2.dojo.version对象。在上面已经讲过这个对象,是dojo库文件的版本,没啥好研究的了。
      3.dojo.hostenv对象,个人认为里面的东西很有看头,不过要慢慢讲来也太费时间了,具体可以去看源码中那几个hostenv_XXX.js文件,dojo.hostenv.getText函数和dojo.hostenv.println函数还有点意思,以后随时补充吧。
      下面讲一讲dojo中的一些基本函数。
      
      待续。。。

  • 相关阅读:
    高可用OpenStack(Queen版)集群-6.Nova控制节点集群
    UML建模相关工具一览
    Java 常用资源工具集合
    [开发工具]Java开发常用的在线工具
    Beyond Compare 4解除到期限制的技巧
    [转]一个非常实用而且精妙的算法-并查集(java语言实现)
    Java实现比较两个List集合是否相等
    Java比较两个List集合的方法
    [转]Java & PHP RSA 互通密钥、签名、验签、加密、解密
    【LeetCode】192周赛-5428. 重新排列数组
  • 原文地址:https://www.cnblogs.com/zxub/p/368511.html
Copyright © 2020-2023  润新知