dojo學習筆記(四)

2021-04-17 23:57:03 字數 4527 閱讀 3767

這裡所說的基礎物件和方法是指的不

require

任何包就能夠呼叫的物件和方法

匿名函式

在開始前,我想介紹一下

js裡的匿名函式,這個在閱讀

dojo

的源**的時候,會發現到處都有匿名函式

;(function())();

//前面的分號是乙個空語句,是可以不要的

匿名函式。乙個匿名函式就是乙個沒有名字的函式。

你可以認為他們是一次性函式。當你只需要用一次某個函式時,他們就特別有用。通過使用匿名函式,沒有必要把函式一直放在記憶體中,所以使用匿名函式更加有效率。

當然你也可以根本不定義函式,但是使用匿名函式可以把你的**分段,就像

c#中的

#region

一樣非常有用的乙個方法,與

prototype.js

的著名的$一樣

似乎以前的版本還有

dojo.byidarray, 

不過最新的版本已經找不到這個函式了(除了

src/compat/

0.2.2

.js)

如果有多個元素具有指定的

id,則返回的是乙個集合

usage example:

dojo.byid("divtest");

dojo.byid("divtest", document);

dojo.byid(document.getelementbyid("divtest"));

dojo.version

dojo

的版本,可以取得

major, minor, patch, flag

和revision

這個物件沒什麼太大用處,除非你要根據

dojo

的版本選擇執行你的**

dojo.raise

丟擲乙個異常

dojo.errortostring

將異常轉換為字串

usage example:

try

catch(e)

dojo.render

系統環境物件

dojo.render.name     

返回browser 

,說明是工作在瀏覽器下

dojo.render.ver        

返回4 

,似乎沒什麼用

dojo.os.win            

返回true

說明作業系統是

windows

dojo.os.linux           

返回true

說明作業系統是

linux

dojo.os.osx            

返回true

說明作業系統是

macos

dojo.html.ie             

返回true

說明瀏覽器是

internet explorer

dojo.html.opera             

返回true

說明瀏覽器是

opera

dojo.html.khtml             

返回true

說明瀏覽器是

konqueror

dojo.html.safari      

返回true

說明瀏覽器是

safari

dojo.html.moz        

返回true

說明瀏覽器是

mozilla firefox

dojo.svg.capable     

返回true

說明瀏覽器支援

svg

dojo.vml.capable     

返回true

說明瀏覽器支援

vml

dojo.swf.capable    

返回true

說明瀏覽器支援

swf

dojo.swt.capable     

返回true

說明瀏覽器支援

swt (ibm

開發的standard widget toolkit)

如果dojo.html.ie

為true

的話dojo.html.ie50         

返回true

說明瀏覽器是

ie 5.0

dojo.html.ie55         

返回true

說明瀏覽器是

ie 5.5

dojo.html.ie60         

返回true

說明瀏覽器是

ie 6.0

dojo.html.ie70         

返回true

說明瀏覽器是

ie 7.0

dojo.addonload

可以載入指定函式到

window.load

時執行,好處就是可以很方便的在

window.load

時執行多個函式

usage example:

dojo.addonload(init);                    //init

是乙個函式

dojo.addonload(myobject, init);       //init

是myobject

物件的乙個方法

dojo.require

如果你想呼叫乙個模組的物件的時候,你應該首先用

dojo.require

來請求這個模組,

dojo

會根據你的請求自動取得相應的

js檔案,並載入到記憶體中,這樣你才能呼叫或建立其中的物件

dojo

會自動維護已載入的模組列表,所以是不會重複載入模組的

usage example:

可以根據指定的條件來決定是否載入指定的模組

usage example:

dojo.requireif(dojo.html.ie, "dojo.html");   //

如果dojo.html.ie

為true

,才會載入

dojo.html

模組dojo.provide

除非你要開發自己的模組,不然是用不到這個方法的,你可以這句看成是向系統註冊這個模組名稱

usage example:

dojo.provide("dojo.custom");

dojo.exists

判斷指定物件是否具有指定名稱的方法

usage example:

dojo.exists(dojo, "exists"); //will return true

dojo.hostenv.gettext

返回指定

url的內容

ps: 

由於瀏覽器的安全限制,因此只能用於取得同網域名稱的

url的內容,否則會報告許可權不夠

usage example:

async = false; //

同步,確保返回內容不為

null

silent = true; //

不丟擲錯誤

返回google

的首頁的

html

alert(s);

dojo.debug

輸出除錯資訊,如果在

djconfig

中指定了

debugcontainerid

,則輸出到指定的

console

容器中,否則直接

document.write

所有的除錯資訊均以

debug: 

開頭usage example:

dojo.debug("

這是除錯資訊

");

dojo.hostenv.println

與dojo.debug

類似,不同的是,輸出內容沒有

debug:

usage example:

dojo.hostenv.println("

這是一般的輸出資訊

");

dojo.debugshallow

輸出指定物件的全部資訊

(shallow

說明並不會遍歷到下一級別的物件屬性

)以供除錯

usage example:

dojo.debugshallow(dojo.render.html);

以上全部是自己閱讀源**寫的總結,如有錯誤,還請指明。

dojo.byid

dojo.require("dojo.event");

dojo.requireif=dojo.requireafterif

dojo學習筆記(三)

模組 dojo.string.common dojo.string dojo.string.common 和dojo.string 是一樣的,只要 require 其中乙個就可以使用以下方法 dojo.string.trim 去掉字串的空白 usage example s abc dojo.stri...

Dojo學習筆記1

一 dojo類包包括 dojo.collections 資料集合如 list,queue,set,stack,dictionary dojo.crypto 各種加密api如 blowfish,md5,rijndael,sha dojo.date 日期類,可以很方便的顯示各種日期格式 dojo.dnd...

Dojo學習筆記 理解 WidgetBase

難度 中級 dojo版本 1.8 原文 參考 深入理解 widgetbase 開始 dijit的基礎以及建立自定義部件的能力,很大程度上依賴於乙個定義在 dijit widgetbase模組的基類,這是使用dojo建立任何種類的自定義部件時都要用到的。注意早期的dijit widget模組繼承了di...