前面说了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,可以知道这是浏览器的名称,但是直接显示出来是空的,估计还没有被赋值,运行
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,发现这么一段:
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.vml,dojo.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中的一些基本函数。
待续。。。