轉自http://www.cnblogs.com/yougewe/p/5152700.html
引語:如今的整個Web開發行業甚至說整個軟件開發行業,已經相當成熟,基本上已經很少找不到沒有前人做過的東西了,或者換句話說,你想要實現的功能,你總能在某個地方搜索到答案,關鍵是你有沒有這個時間精力去搜尋!以至於大多數的開發,其實就是一個找資料的過程,一個復制粘貼的過程,這的確也是一個可悲的現象。不過,換個角度來看,其實也挺好,現在咱們凡事都講求一個效率問題,只要能實現功能,就甭管他復制粘貼抄襲了。問題的關鍵是,你得會復制、粘貼、抄襲,你得會調試你的代碼啊!難道有人給了你所有的配件你就能把車子給組裝起來?難道有人送你一輛好車你就會改裝了?然並卵,關鍵還得看你自己有幾斤幾兩了。
我記得我曾經有一位資深的運維同事給我說過一句話:所謂的開發不過是僅僅掌握了一些調試代碼的技巧而已。雖然我本人對於運維的工作也不怎么看得上眼,但是,不得不說,我很贊同他這句話。因為如今互聯網橫行的今天,有太多太多的參考,你可以實現所有你想實現的。但又正是因為有太多太多的參考,以至於我們都不知道選擇什么好,哪個是對的,哪個是錯的?誰說不是呢,沒有選擇是一種無奈,太多選擇總會讓人浮躁!你如果能夠隨心所欲地調試你的代碼,誰敢說你不牛掰我都不信了?
看本文標題,是講Web調試的,但是我估計廢話所占的篇幅不小,因為,哈哈,我TM就是一個喜歡來虛的這么一個人!我所謂的虛的,是指理論級別的東西而非實戰級別。但是,我始終堅信,理論是實踐的基礎,實踐會加深真理論的認識!想成為一個真正的開發人員,我覺得,至少你得了解計算機它是怎么工作的。基礎知識真的是必不可少的,如:計算機原理,匯編,單片機,C,VB,VC,數據結構,經典算法!這些無疑都會加深你對理論的了解!
好,廢話已經太多。下面進入正題,作為Web開發者,Web調試工具自然是必不可少的。那么,我們就來聊聊Chrome, Firefox, IE三大家的Web調試的一些特點(雖然市面有數不清的瀏覽器,但是糾其內核,基本都是這三者之一),以及都有哪些技巧?
一、Firefox 插件之 Firebug, 火狐調試利器【初學必備】
為什么要第一個提到火狐呢?因為啊,這東西確實是太方便了,剛開始接觸開發那會兒,根本都不知道調試,只是憑着感覺去做事。后來看到有人在用Firefox 的 Firebug,一下就愛上了,原因如下。優點:1 中文;2 直觀;3 定位超級快!缺點:1 插件每次都需要重新下載;2 每次都要重新啟用才可以使用各種調試功能。
下面我們先看幾個主要功能模塊截圖,稍后稍細作解析!
. 控制台
.. 腳本調試
... 網絡收發狀況查看
里面主要用到的功能是,1. 控制台,可心直觀的看到一些頁面的基本情況,如上圖所示的錯誤信息,以及一些ajax的請求,很輕松的點開就可看到訪問的參數等等,基本上通過這里的調試,可以給你省去30%~40%的錯誤了;2. 腳本頁,如果js腳本比較復雜,那頁面js單步調試等功能就很有必要了,Firebug中有一個很好的搜索功能@多文件搜索,也就是說,你只要能說出其個別的關鍵詞,他就可以幫你找到具體在哪個腳本頁面哪一行。3. 網絡功能,用於查看各個頁面的具體請求情況很方便,用於定位哪個節點是否出問題是必須的,當然,多了解一點http協議對於這一塊的理解還是很有好處的。
二、Google Chrome 之F12自帶控制台【水平的進階】
Google作為W3C標准制定者之一(好像是的),是個絕對的W3C標准支持者,因此對於很多的標准屬性,在chrome都有很好的展現。但是有一點讓人很困惑,那就是整個頁面都是英文,描述也和咱中國人的習慣不太吻合,所以適合用於進階卻不適合用於初學,適合用於英語水平稍好點的同學(當然了,看習慣也就都一樣了)。優點:1 瀏覽器自帶;2 官方標准適合自己寫標准語法;3 功能齊全;4 控制台調試非常方便幾乎可以當作一個簡單的幫助文檔來使用!缺點:如前所述!
下面先看幾個截圖,稍后細作講解!
. 頁面元素查看
.. 網絡狀況查看
... 資源使用情況(腳本調試)
.... 控制台臨時運行
作為一個經驗稍微豐富點的開發人員,我認為chrome的調試是必備的,雖然有很多亂七八糟的英文,但我們還是可以克服的嘛,而且他功能特別齊全。基本功能和火狐的firebug差不多,不同的只是一個展現方式的不一樣,那我就說幾個特殊的或者前面沒有說到的點好了。1. 很方便地動態編輯html元素,從而避免反復改代碼調試的工作,同理於css樣式的編寫。寫html頁面我有一個不成熟想法:其實我不會寫什么頁面,我不過知道幾個標簽html,div,span和幾個css名稱display,position,font-size,然后我就不停在瀏覽器控制台里猜測各種想法,然后復雜的效果就出來了;2. 作為腳本調試,我本人還沒有習慣chrome的調試方式,不支持多文件搜索,這對於包含文件很多的地方並不是好事,不過你可以把所有的資源都打開,這時候再搜索就可以給你定位了;3. 適應他的網絡查看工具(點擊鏈接后具體信息在右邊展示,時間軸根據情況適當隱藏);4. 多利用控制台寫一些嘗試操作,對於已經加載了的全局變量,你可以直接在控制台使用,如要查看某元素高度,$('#ele').height();這里的'$'就是文檔中已經加載的jquery變量。5. 其他一些優化工具可以嘗試使用!(哈哈,我只是看並不用)
三、IE 工具之 httpwatch 【看個人喜好了】
其實,我基本上不會用IE去調試代碼的了,但是作為一個知名度不低的瀏覽器,以及名聲赫赫的httpwatch還是有必要了解一下的。優缺點自行判斷,我就說兩句就好。1. 功能強大,可以將訪問日志導出,在另外的地方進行靜態分析;2. 抓包,其實他就是干這個事的!3. IE的F12反正和其他的也差不多(我說的是高版本),簡單搞搞就行,反正我僅僅用來調試兼容性問題!
工欲善其事,必先利其器!只有有一個好的順手的調試工具幫助你,你才能更快地進行你的工作。當然,你最好有一些基礎理論知識,這對於你排查問題找方向會有很大的幫助!So, Debug your code, Debug yourself.
注:本文主要講web控制台調試,看起來好像全是前端工作,但是其實往往是和后端緊密相連的!一個字,去了你就知道了!