TNT blog  
          日歷
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345
          統計
          • 隨筆 - 5
          • 文章 - 40
          • 評論 - 7
          • 引用 - 0

          導航

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          home

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

           

          Dojo學習筆記(3. Dojo的基礎對象和方法)

          這里所說的基礎對象和方法是指的不Require任何包就能夠調用的對象和方法

          匿名函數

          在開始前,我想介紹一下js里的匿名函數,這個在閱讀dojo的源代碼的時候,會發現到處都有匿名函數

          ;(function(){
          alert(
          123);
          }
          )();
          //前面的分號是一個空語句,是可以不要的

          匿名函數。一個匿名函數就是一個沒有名字的函數。

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

          當然你也可以根本不定義函數,但是使用匿名函數可以把你的代碼分段,就像C#中的#region一樣

          dojo.byId

          非常有用的一個方法,與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
           
          {
              dojo.raise(
          "打印失敗"new Error("文件不存在"));
           }

           
          catch(e)
           
          {
              alert(dojo.errorToString(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:

           dojo.require("dojo.event");

          dojo.requireIf=dojo.requireAfterIf

          可以根據指定的條件來決定是否加載指定的模塊

          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//不拋出錯誤
           s = dojo.hostenv.getText("http://www.google.com/", aSync, silent); //返回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);
          posted on 2007-05-25 13:34 TNT 閱讀(144) 評論(0)  編輯  收藏 所屬分類: ajax
           
          Copyright © TNT Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 库伦旗| 上高县| 安顺市| 清徐县| 望江县| 凌云县| 澳门| 苍溪县| 大邑县| 友谊县| 黑龙江省| 沂水县| 长沙县| 璧山县| 静宁县| 沙田区| 乌鲁木齐市| 张家口市| 布尔津县| 石棉县| 雷州市| 仙居县| 莲花县| 河西区| 蓬溪县| 集安市| 合水县| 潜江市| 新竹县| 得荣县| 桃江县| 武邑县| 宜君县| 松溪县| 荔浦县| 柯坪县| 焉耆| 纳雍县| 福海县| 龙井市| 汝南县|