五種前端開發必備的除錯技術
在前端開發中,除錯技術是必不可少的技能,本文將介紹五種前端開發必備的除錯技術。
- Weinre移動除錯
- DOM 斷點
- debugger斷點
- native方法hook
- 遠端對映本地除錯
Weinre
在移動上面開發除錯是很複雜的,所以就有了weinre。安裝weinre可以實現pc來除錯手機頁面,所以對於移動開發除錯是很重要的哦~
安裝weinre
weinre可以通過npm來安裝:
npm install -g weinre
安裝完之後,可執行下面的命令來啟動:
weinre --httpPort 8080 --boundHost -all-
這樣訪問自己的127.0.0.1:8080按照提示在需要除錯頁面中插入一段js,然後就可以除錯了。操作介面類似Chrome的DevTools,具體操作可以看下[教程](<http<a rel=”nofollow” href=”“></a>>
原理
通過在需要除錯的頁面中引入一段weinre的js,實現pc和手機的socket通訊,從而實現實時除錯。
Tips
- 如果你嫌每次都要在除錯的頁面引入js麻煩,可以做個書籤或者chrome外掛
- 如果嫌安裝麻煩,可以使用phonegap的weinre:http://debug.phonegap.com/
DOM斷點
DOM斷點是一個Firebug和chrome DevTools提供的功能,當js需要操作打了斷點的DOM時,會自動暫停,類似debugger除錯。
使用DOM斷點
- 選擇你要打斷點的DOM節點
- 右鍵選擇Break on..
- 選擇斷點型別
Tips
- Firebug中,DOM斷點可以在Script> Breakpoints裡面看到
- chrome DevTools中,需要在Elements皮膚的DOM Breakpoints中看到
javascript的debugger語句
需要除錯js的時候,我們可以給需要除錯的地方通過debugger打斷點,程式碼執行到斷點就會暫停,這時候通過單步除錯等方式就可以除錯js程式碼
使用javascript的斷點
在需要打斷點的地方新增debugger:
if (waldo) {
debugger;
}
這時候開啟console皮膚,就可以除錯了
Tips
如果你不知道怎麼除錯,那麼儘快看下:Chrome DevTools中斷點部分的教程
原生程式碼的hook除錯
因為瀏覽器自己會內建一些類似window物件這些原生的js方法,當你知道原生程式碼的確有問題,但是你又不能跟蹤除錯的時候,你就可以用這個方法了。
舉個例子
例如我們注意到了一個DOM的屬性值發生了變化,但是我們不知道是哪裡的程式碼導致的變化,所以我們可以給DOM元素的setAttribute打個斷點,程式碼如下:
var oldFn = Element.prototype.setAttribute;
Element.prototype.setAttribute = function (attr, value) {
if (value === "the_droids_you_are_looking_for") {
debugger;
}
oldFn.call(this, attr, value);
}
這樣,當元素的屬性發生了變化的時候,就會執行到斷點,你就可以在斷點的棧中找出呼叫的地方來~
Tips
這種方法不保證在所有瀏覽器中有效,比如ios的safari隱私模式下,我們就不可以修改localStorage方法
遠端對映本地除錯
當線上某個js/css出現問題,我們可以用代理的方式,將遠端的檔案代理到本地來實現遠端對映除錯。其實除了這個功能,還可以作為抓包工具,這在移動端是很重要的。推薦Mac用[charles Proxy](http://www.charlesproxy.com/),
windows使用者使用fiddle。
這個就不多說了,直接上國內的幾篇文章:
- http://www.cnblogs.com/tankxiao/archive/2012/02/06/2337728.html
- http://www.cnblogs.com/TankXiao/p/3063871.html
轉載自:五種前端開發必備的除錯技術
相關文章
- web前端必備技術有哪些?Web前端
- Node 除錯利器,前端、Node 開發必備 - VSCode JS Debug Terminal除錯前端VSCodeJS
- 前端開發必備網站前端網站
- golang 後端技術開發必備總結Golang後端
- 前端必須知道的除錯工具前端除錯
- 在Mac下的前端開發必備工具Mac前端
- 七款Debug工具推薦:iOS開發必備的除錯利器iOS除錯
- 前端開發技術的發展前端
- 移動端除錯痛點?——送你五款前端開發利器除錯前端
- 2019前端工程師必備前端開發資源必備前端工程師
- 學習外掛編寫開發所必備技術
- 五種VC++資料庫開發技術的比較C++資料庫
- 前端開發必備!Emmet使用手冊前端
- ssh配置除錯的必殺技除錯
- 神器:前端開發人員必備的5款開發工具前端
- 前端開發移動端除錯前端除錯
- 快速開發外掛emmet,前端程式設計師炫技必備!前端程式設計師
- Web前端開發掌握的技術Web前端
- python五種除錯或排錯的方法Python除錯
- 建立前端資料模型,vue開發必備前端模型Vue
- browser-sync前端開發除錯神器前端除錯
- 前端開發環境(開發,除錯,測試工具)前端開發環境除錯
- NET開發不可錯過的25款必備工具
- 牆裂推薦:Web前端開發必備工具Web前端
- 乾貨 | Dubbo 介面測試技術,測試開發進階必備
- Java開發需要掌握哪些技術?Java程式設計師必備技能Java程式設計師
- Linux運維必備技術有哪些?運維要學開發Linux運維
- 常用的 Python 除錯工具,Python開發必讀Python除錯
- IE, FF, Safari前端開發常用除錯工具前端除錯
- Bochs 除錯技術(轉)除錯
- 前端技術開發工具彙總前端
- 現代前端開發技術棧前端
- Web前端十種常用的技術Web前端
- 《除錯九法》:除錯是個技術活除錯
- 【前端除錯】- 斷點除錯的正確開啟方式前端除錯斷點
- 【同行說技術】Python開發、除錯、爬蟲類工具 大全Python除錯爬蟲
- 瀏覽器端技術體系概覽 -- 前端開發的七種武器瀏覽器前端
- 網頁開發的6種線上除錯環境網頁除錯