此文為轉(zhuǎn)載铭若,原文地址:http://www.cnblogs.com/charliechu/p/5948448.html
Chrome開發(fā)者工具面板
面板上包含了Elements面板、Console面板递览、Sources面板叼屠、Network面板、
Timeline面板绞铃、Profiles面板镜雨、Application面板、Security面板儿捧、Audits面板這些功能面板荚坞。
這些按鈕的功能點如下:
Elements:查找網(wǎng)頁源代碼HTML中的任一元素,手動修改任一元素的屬性和樣式且能實時在瀏覽器里面得到反饋挑宠。
Console:記錄開發(fā)者開發(fā)過程中的日志信息,且可以作為與JS進行交互的命令行Shell颓影。
Sources:斷點調(diào)試JS各淀。
Network:從發(fā)起網(wǎng)頁頁面請求Request后分析HTTP請求后得到的各個請求資源信息(包括狀態(tài)、資源類型诡挂、大小碎浇、所用時間等),可以根據(jù)這個進行網(wǎng)絡(luò)性能優(yōu)化璃俗。
Timeline:記錄并分析在網(wǎng)站的生命周期內(nèi)所發(fā)生的各類事件奴璃,以此可以提高網(wǎng)頁的運行時間的性能。
Profiles:如果你需要Timeline所能提供的更多信息時旧找,可以嘗試一下Profiles,比如記錄JS CPU執(zhí)行時間細節(jié)溺健、顯示JS對象和相關(guān)的DOM節(jié)點的內(nèi)存消耗、記錄內(nèi)存的分配細節(jié)钮蛛。
Application:記錄網(wǎng)站加載的所有資源信息鞭缭,包括存儲數(shù)據(jù)(Local Storage、Session Storage魏颓、IndexedDB岭辣、Web SQL、Cookies)甸饱、緩存數(shù)據(jù)沦童、字體、圖片叹话、腳本偷遗、樣式表等。
Security:判斷當前網(wǎng)頁是否安全驼壶。
Audits:對當前網(wǎng)頁進行網(wǎng)絡(luò)利用情況氏豌、網(wǎng)頁性能方面的診斷,并給出一些優(yōu)化建議热凹。比如列出所有沒有用到的CSS文件等泵喘。
注:?這一篇主要講解前三個面板Elements、Console般妙、Sources纪铺。
Elements面板
實時編輯DOM節(jié)點和CSS樣式
雙擊DOM樹視圖里面的節(jié)點,可以實時編輯標簽屬性碟渺,修改的效果會立刻反應(yīng)在瀏覽器里面
點擊右側(cè)Style面板鲜锚,可以實時修改CSS的屬性值,這里面的所有樣式Name和Value都是可以編輯的;在每個屬性后面單擊可以添加新的樣式,如下圖:
點擊右側(cè)Computed面板芜繁,可以編輯左側(cè)選中的盒子模型參數(shù)攒霹,所有的值都是可以修改的;點擊不同的位置(top、bottom浆洗、left、right) 就可以修改元素的padding集峦、border伏社、margin屬性值。
查看網(wǎng)頁的本地修改歷史
點擊Styles面板中修改過屬性的文件名塔淤,會跳轉(zhuǎn)到Source面板
在文件位置右擊選擇Local modifications,可以查看本地的所有修改記錄
點擊指定的時間點可以看到粉紅背景的刪除內(nèi)容和綠色背景的添加內(nèi)容
Console面板
控制臺輸出日志
通過JS代碼或者命令行console.log()摘昌、console.warn()
和console.error()可以將日志信息輸出到控制臺
console.log?顯示一般的基本日志信息,當要顯示的基本日志太多時可以使用console.group將相關(guān)的日志進行分組
console.warn?顯示帶有黃色小圖標的警告信息
console.error?顯示帶有紅色小圖標的紅色的錯誤信息
console.assert?當?shù)谝粋€參數(shù)為false時高蜂,才會顯示第一個參數(shù)的值
可以根據(jù)JS條件判斷輸出不同的日志信息
注:?當需要換到下一行而不是回車的時候聪黎,請按Shift+Enter。
控制臺交互
JS表達式計算
在上一小節(jié)备恤,我們已經(jīng)看到可以在控制臺輸入JS表達式點擊Enter即可得到表達式的值稿饰,當你在控制臺輸入命令時,會彈出相應(yīng)的智能提示框露泊,你可以用Tab自動完成當前的建議項
選擇元素
快捷方式描述
$()返回與指定的CSS選擇器相匹配的第一個元素喉镰,等同于document.querySelector()
$$()返回與指定的CSS選擇器相匹配的所有元素的數(shù)組,等同于document.querySelectorAll()
$x()返回與指定的XPath相匹配的所有元素的數(shù)組
注:?我在實際操作過程中發(fā)現(xiàn)$()并沒有按預期返回相匹配的第一個元素惭笑,而是返回了所有匹配的元素數(shù)組侣姆,我也給Google提供了這個issue,等待Google的答復沉噩。
Sources面板
你可以在這個面板里面調(diào)試你的JS代碼捺宗,也可以在工作區(qū)打開你的本地文件。
調(diào)試JS代碼
你可以點擊JS代碼塊前面的數(shù)字外來設(shè)置斷點川蒙,如果當前代碼是經(jīng)過壓縮的話蚜厉,可以點擊下方的花括號{}來增強可讀性,所有的斷點都會列出右側(cè)的斷點區(qū)派歌。
設(shè)置斷點
斷點可以在DOM元素節(jié)點發(fā)生改變時弯囊、XHR生命周期狀態(tài)改變時、指定的事件執(zhí)行時被觸發(fā)
①?DOM元素節(jié)點發(fā)生改變時
在Elements面板中指定的DOM節(jié)點上右擊胶果,在彈出的菜單中選擇Break on...匾嘱,可以看到三個選擇項,比如我們選擇Subtree modifications早抠,
那么當選擇的節(jié)點里面的子節(jié)點被添加霎烙、刪除、修改,則斷點就會被觸發(fā)悬垃。設(shè)置方式如下圖:
下圖是在我的系統(tǒng)里添加指定省市指定醫(yī)院時由于增加了元素節(jié)點而觸發(fā)的斷點游昼,通過單步調(diào)試可以看到會彈出一個div對話框供用戶添加數(shù)據(jù)。
②?XHR生命周期狀態(tài)改變時
當XHR生命周期狀態(tài)發(fā)生改變或者XHR的URL與Sources面板右側(cè)的XHR Breakpoints欄設(shè)置的字符串匹配時尝蠕,則斷點就會有觸發(fā)烘豌。
③?指定的事件執(zhí)行時
在Sources面板右側(cè)的XHR Breakpoints欄下面是Event Listener Breakpoints,列出了各種類型的事件,勾選你要監(jiān)聽的事件看彼,
在指定的事件執(zhí)行時廊佩,斷點就會有觸發(fā)。