前面說了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.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中的一些基本函數。