重復容易,改變很難
          java,,,不錯的玩具
          posts - 21,  comments - 42,  trackbacks - 0

                   今天,我想向大家介紹一下 IE 的調試工具,因為經常聽到一些剛入門的 JavaScript 開發人員抱怨說,沒有好的 JavaScript 開發環境,沒有好用的調試器,沒有集成的 IDE 工具。2005 年,一個被稱做 Aptana 的免費開源項目啟動了,但是直到 2006 年底,才為人們所知。新年伊始,對于開發人員來說,這個 Ajax 開發環境無疑是個好消息。

          本篇不想介紹這個新生兒,我只是想介紹一個被微軟藏著掖著,總也不放到明面兒上,讓大家都知道的工具—“Microsoft 腳本編輯器”。當 IE 被升級到 5.5 以上之后,那個所謂的“Windows Script Debugger”其實已經與 IE 的 JavaScript 開發不兼容了,許多對象的屬性值根本無法被正確的監視。但是做為替代品,“Microsoft 腳本編輯器”恰恰可以彌補這個不足,它的強大,足以應付 IE 下網頁腳本的開發。這個工具被捆綁在“Microsoft Development Environment”環境中,如果你安裝有“Microsoft Visual Studio .NET”,或者“Microsoft Office XP(10.0)”以上的版本,你都可以使用這個腳本調試工具。由于這個工具是微軟自己開發的,所以運行效率很高,并且與 IE 的兼容性也是最好的。

          因為“Microsoft Visual Studio .NET”太大了,所以通過 Office 來安裝這個工具,就顯得特別有意義。安裝此工具的方法比較特殊,因為它是通過“Office Word”來引導安裝的。下面,通過安裝過程的截圖,你可以了解到如何安裝這個工具。
















          完成上面那個的“Internet 選項”設置之后,關閉所有已經打開的 IE 窗口,然后再運行 IE。你會發現在 IE 的“查看”菜單下,多了一個“腳本調試程序”項,如下圖所示


          至此,“Microsoft 腳本編輯器”便安裝完畢了。當你瀏覽的網頁出現腳本語法錯誤或實時運行錯誤時,瀏覽器將自動彈出如下的窗口,提示你是否調試此錯誤。



          而當你沒有安裝此工具前,所有的腳本錯誤只能通過點擊瀏覽器狀態欄的左下角,彈出錯誤提示窗口來查看,而這顯然是“幼稚”的方法,起到的作用也如“盲人摸象”一般。

          雖然這個工具可以用來解決腳本運行時的錯誤,但有時我們只想跟蹤程序的邏輯,或者熟悉 DOM 對象的 API。也許被跟蹤的代碼任何錯誤也沒有,或者我們只想看看在某一時刻,某個 DOM 對象的某個屬性是否能被訪問。在所有的語言調試環境中,通用的方法就是設置“斷點”,而這個工具對于“斷點”的支持不像 FirebugJavaScrip Debugger 那樣好,可以調出已經裝載在當前網頁中的任何腳本,以便隨時的添加斷點。所以,利用“Microsoft 腳本編輯器”動態地設置腳本斷點,來進行跟蹤調試是非常不方便的。對于這種情況,我們需要在代碼中人為地制造一些斷點,達到方便調試的目的。比如,有如下的代碼片段

               var person = {name: "Lewis", gender: "male", blogURL: "http://www.lewislv.org"};     var years = [2000, 2001, 2002, 2004, 2005, 2006];     person.employmentYears = years; 

          以上是一段語法正確的 JavaScript 代碼。然而,初學者可能只是想了解對象是如何被實例化,代碼是如何被運行的。IE 的 JavaScript 解釋器提供了一個保留的 debugger 語句(VBScript 調試的等價關鍵字是 stop),它可以告訴瀏覽器調出調試程序,以此達到設置斷點的目的。對于上面的代碼,假設我想了解一下 person 對象和 years 數組的存儲結構,那么我可以在代碼的入口處添加一條 debugger 語句,更改后的代碼片段如下

               debugger     var person = {name: “Lewis”, gender: “male”, blogURL: “http://www.lewislv.org”};     var years = [2000, 2001, 2002, 2004, 2005, 2006];     person.employmentYears = years; 

          當代碼在瀏覽器中被裝載并運行時,它會解釋 debugger 語句,彈出是否調試的窗口。同樣,我做了一些截圖,用來演示如何達到查看變量存儲結構的目的











          此時,斷點停留在 alert(a) 那一行,其實這一行是故意添加的錯誤代碼,只是為了產生一個斷點。因此,可以像下圖那樣,跳過此行代碼的執行,直接轉到給 person 對象賦值那一行。







          現在,我們可以“逐語句”的單步執行了,這樣被監視變量的每一次細微變化,都可以被監視得一清二楚。












          “工欲善其事,必先利其器”,“君子性非異也,善假于物也”,說得都是這個道理。好了,希望那些在 IE 下開發 JavaScript 的程序員,不會再抱怨沒有好的調試工具了,因為利器就在你手中。
          posted on 2007-07-20 13:46 分享愛的空間 閱讀(1911) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(5)

          隨筆檔案

          文章檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 台中县| 清水县| 贡觉县| 尉氏县| 新泰市| 宜君县| 平和县| 长宁区| 大余县| 桐柏县| 洪江市| 乡城县| 阿瓦提县| 海伦市| 化州市| 柘荣县| 土默特右旗| 乐陵市| 普陀区| 寻乌县| 襄垣县| 措美县| 疏勒县| 宜川县| 凭祥市| 阜宁县| 台东县| 崇仁县| 巩留县| 泰和县| 特克斯县| 定远县| 武宣县| 府谷县| 呼玛县| 沁阳市| 社旗县| 旺苍县| 琼海市| 阿坝县| 五家渠市|