chrome開發(fā)者工具簡介(在pc端訪問移動端圖片無法加載)

很抱歉缸榄,這文章是我好久之前寫的 圖片是存在有道云的孝偎,不知道為什么在移動端無法加載

常用快捷鍵

chrome快捷鍵

chrome快捷鍵 左右切換tag頁

left: ctrl + pgup
right: ctrl + pgdn
new tab: ctrl + t

1.文件快速切換
快捷鍵Ctrl + P 就可以快速查找你的工程文件。

2.源代碼內(nèi)部查找
如果你想要查找源代碼的內(nèi)容砚殿,你可以使用Ctrl + Shift + F (Cmd + Opt + F)并輸入字符串關(guān)鍵詞霸旗。

3.到某一行
當你在Chrome DevTools中打開一個源文件圣絮,你可以指定到任意一行,用快捷鍵 Ctrl + G (Windows 和 Linux), 或者 Cmd + L (Mac)并輸入你想跳到哪一行灌灾。
你也可以示用Ctrl + O搓译,并輸入“:”+第幾行。

4.在控制臺中選中元素
在DevTools中你可以手動選擇DOM元素锋喜。
$() 返回符合當前CSS選擇器的第一個元素些己,例如 $(‘div’) 會返回頁面中第一個div元素。
$$() 返回符合當前CSS選擇器的一串 好多個 不是一個元素嘿般。

(下面的圖是我在網(wǎng)上搜集的轴总,自己寫肯定沒有這個配圖說的清楚)

開發(fā)者工具面板各個板塊介紹

Elements

常用方法:
1.鼠標移動到元素上會在原網(wǎng)頁上顯示藍色印記;
2.在開發(fā)者工具下面顯示元素在HTML里的位置關(guān)系博个;
3.在styles選項中編輯該元素的樣式怀樟,并且看到html結(jié)構(gòu)的實時更新;
4.左上角的箭頭盆佣,鼠標點擊后往堡,移動到網(wǎng)頁,下面會自動跳轉(zhuǎn)到相應(yīng)的元素上共耍;

選中一個元素虑灰,右擊鼠標,你會看到有一個彈出窗口出現(xiàn)痹兜,里面有若干選項

Add attribut: 為該元素添加屬性
Edit attribute:修改該元素的屬性
Force element state: 為元素激活某種狀態(tài)(主要用在可以幾乎的元素比如a穆咐、input、button等)
Edit as HTML:編輯該元素(你可以重寫它的整個content)甚至修改它的標簽名稱
Break on:為該元素添加dom操作事件監(jiān)聽。

在element里可以調(diào)試css查看html的DOM对湃,這些都是平常最常用的功能
然后chrome最可愛的css顏色選擇崖叫,當你點擊一個css的color屬性后,就會出現(xiàn)下圖拍柒,你就可以選擇自己喜歡的顏色了心傀,而且這時你移動鼠標到頁面上任意位置會出現(xiàn)一個放大鏡一樣的取景器,點擊就會在elelment面板上顯示你點擊位置的顏色相關(guān)信息拆讯。脂男。。种呐。宰翅。
點擊color屬性可以在rgbahslhexadecimal中間來回切換顏色的格式

就像這樣爽室。堕油。。肮之。


DevTools有一個可以模擬CSS狀態(tài)的功能掉缺,例如元素的hover和focus,可以很容易的改變元素樣式。在CSS編輯器中可以利用這個功能


Network

Network是一個監(jiān)控當前網(wǎng)頁所有的http請求的面版戈擒,它主體部分展示的是每個http請求眶明,每個字段表示著該請求的不同屬性和狀態(tài)

Name:請求文件名稱
Method:方法(常見的是get post)
Status:請求完成的狀態(tài)
Type:請求的類型
Initiator:請求源也就是說該鏈接通過什么發(fā)送(常見的是Parser、Script)
Size:下載文件或者請求占的資源大小
Time:請求或下載的時間
Timeline:該鏈接在發(fā)送過程中的時間狀態(tài)軸(我們可以把鼠標移動到這些紅紅綠綠的時間軸上筐高,對應(yīng)的會有它的詳細信息:開始下載時間搜囱,等待加載時間,自身下載耗時)

2.單擊面板中的任意一條http信息柑土,會在底部彈出一個新的面板蜀肘,其中記錄了該條http請求的詳細參數(shù)header(表頭信息、返回信息稽屏、請求基本狀態(tài)—請參看http1.1協(xié)議內(nèi)容對號入座)扮宠、Preview(返回的格式化轉(zhuǎn)移后文本信息)、response(轉(zhuǎn)移之前的原始信息)狐榔、Cookies(該請求帶的cookies)坛增、Timing(請求時間變化)


位置1:filter過濾器,可在輸入框中輸入關(guān)鍵字搜索對應(yīng)請求的文件薄腻。
位置2:請求文件的列表里進行了分類收捣,個人常用的是查看XHR的分類,查看Ajax請求庵楷。
位置3:設(shè)置網(wǎng)絡(luò)的通信方式罢艾。默認"No thirotting"不節(jié)流楣颠。這里可以設(shè)置斷網(wǎng)模式,或者模擬3G咐蚯,4G網(wǎng)絡(luò)等情況下頁面加載的速度童漩。網(wǎng)速可以在"settings"里面設(shè)置。

Sources

sources面板是調(diào)試中最常用的地方仓蛆。
位置1:查看頁面中加載的資源文件
位置2:如果瀏覽器裝了插件睁冬,插件所需要的JS文件會在這里顯示
位置3:使用ctrl+p/ctrl+o 打開某個文件
位置4:斷點的操作
位置5:查看異步請求時所設(shè)置的定時器
位置6:點擊右邊的加號挎春,可以增加監(jiān)聽的變量看疙。不過鼠標放到JS文件中的變量時也會顯示對應(yīng)的值。
位置7:設(shè)置各種不同的斷點直奋。
當勾選XHR Breakpoints里的any XHR時能庆,頁面中觸發(fā)Ajax請求時都會中斷。
當勾選"Event listener breakpoint" 下的 Mouse(鼠標)下的 Click (單擊)事件時脚线,觸發(fā)某個按鈕的點擊事件就會中斷搁胆。
位置8:一般線上的代碼都是打包后的代碼,不利于調(diào)試邮绿。點擊{}后格式化該文件渠旁。

這里我再就說一下怎么使用sources這個面板進行一些js的調(diào)試:

圖中的4號區(qū)域有6個按鍵(有的版本這幾個按鍵位置在source下面)
當你調(diào)試時按下第一個暫停(快捷鍵f8),js停止運行,然后點擊第三個想箭頭一樣的按鈕(快捷鍵f10)船逮,javascript執(zhí)行下一句顾腊,同理另一個箭頭按鈕表示向上執(zhí)行,返回上一句js的狀態(tài)挖胃。
設(shè)置斷點:(當4號區(qū)域第五個按鈕按下時)點擊sources中間的代碼行數(shù)杂靶,就會在這里設(shè)置一個斷點,藍色時表示激活斷點酱鸭,再次點擊取消吗垮,這樣刷新頁面直接執(zhí)行到你設(shè)置的斷點處。

然后我就必須提一個比較可愛的功能了凹髓。烁登。。蔚舀。防泵。代碼美化。蝗敢。捷泞。。寿谴。

以前看源碼跟個鬼一樣 所有js css全堆在一起锁右,是個正常人都看不懂,但chrome在sources源代碼的部分下面有一個按鍵 “{}” 點擊后你就會發(fā)現(xiàn)世界美好了,咏瑟,拂到,,码泞,

想快速的找到你點擊某個特定的按鈕或者鏈接的運行代碼兄旬,只需要在你點擊按鈕前啟用“Event listener breakpoint” Mouse:mouseover還有mouseout

我在div上寫了一個mouseover的js當js檢測到有運行到mouseover時就會顯示出mouseover執(zhí)行的function()
你就可以看看事件是怎么執(zhí)行的了
但使用這個功能可能會進入到第三方的代碼庫像jQuery,這時候你就需要花費一些調(diào)試的時間來到達真正的事件處理函數(shù)。最好的方法是標記“Blackbox Script”避免進入到第三方的腳本余寥。調(diào)試時就再不會進入第三方的腳本庫了领铐,代碼會一直運行到?jīng)]有標記blackboxed的文件為止。你可以blackbox腳本通過右擊調(diào)用棧里的第三方庫的文件宋舷,并從上下文菜單中選擇“Blackbox Script”即可:
然而一般我不用jquery

console

Rainbow Text(一個小效果)

console.log('%cRainbow Text ', 'background-image:-webkit-gradient( linear, left top, right top, color-stop(0, #f22), 
color-stop(0.15, #f2f), 
color-stop(0.3, #22f), 
color-stop(0.45, #2ff),
color-stop(0.6, #2f2),
color-stop(0.75, #2f2), 
color-stop(0.9, #ff2),
color-stop(1, #f22) );
color:transparent;-webkit-background-clip: text;font-size:5em;');

console.time & console.timeEnd 計算耗時

![console.time](http://upload-images.jianshu.io/upload_images/1889471-7372ce7da5b0b345.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

對代碼執(zhí)行的耗時情況進行測試時绪撵,處理手工在代碼中創(chuàng)建前后兩個時間戳進行對比,在dev tools中祝蝠,我們可以使用console.time與 console.timeEnd實現(xiàn)音诈。

console.time("測試用時");
var array= new Array(1000000);
for (var i = array.length - 1; i >= 0; i--) {
array[i] = new Object();
};
console.timeEnd("測試用時");

關(guān)閉Console界面

console.log:普通信息
console.log('%c你好','color:red;','小明','你知道被媽媽打了么');
console.info:提示類信息
console.error:錯誤信息
console.warn:警示信息

var data = [{'品名': ‘室友', '數(shù)量': 4}, {'品名': '電腦', '數(shù)量': 9}];
console.table(data);顯示圖表

另外,console.log() 接收不定參數(shù)绎狭,參數(shù)間用逗號分隔细溅,最終會輸出會將它們以空白字符連接。

console.assert

當你想代碼滿足某些條件時才輸出信息到控制臺儡嘶,那么你大可不必寫if或者三元表達式來達到目的喇聊,cosole.assert便是這樣場景下一種很好的工具,它會先對傳入的表達式進行斷言社付,只有表達式為假時才輸出相應(yīng)信息到控制臺承疲。

var isDebug=false;
console.assert(isDebug,'開發(fā)中的log信息。鸥咖。燕鸽。');

console.count

除了條件輸出的場景,還有常見的場景是計數(shù)啼辣。
當你想統(tǒng)計某段代碼執(zhí)行了多少次時也大可不必自己去寫相關(guān)邏輯啊研,內(nèi)置的console.count可以很地勝任這樣的任務(wù)。

function foo(){
//其他函數(shù)邏輯blah blah鸥拧。党远。。
console.count('foo 被執(zhí)行的次數(shù):');
}
foo();
foo();
foo();

console.dir

將DOM結(jié)點以JavaScript對象的形式輸出到控制臺
而console.log是直接將該DOM結(jié)點以DOM樹的結(jié)構(gòu)進行輸出富弦,與在元素審查時看到的結(jié)構(gòu)是一致的沟娱。不同的展現(xiàn)形式,同樣的優(yōu)雅腕柜,各種體位任君選擇反正就是方便與體貼济似。

console.dir(document.body);
console.log(document.body);

console.time & console.timeEnd

輸出一些調(diào)試信息是控制臺最常用的功能矫废,當然,它的功能遠不止于此砰蠢。當做一些性能測試時蓖扑,同樣可以在這里很方便地進行。
比如需要考量一段代碼執(zhí)行的耗時情況時台舱,可以用console.time與 console.timeEnd來做此事律杠。

這里借用官方文檔的例子:

console.time("Array initialize");
var array= new Array(1000000);
for (var i = array.length - 1; i >= 0; i--) {
array[i] = new Object();
};
console.timeEnd("Array initialize");

另外值得一贊的是,Chrome 控制臺中原生支持類jQuery的選擇器竞惋,也就是說你可以用$加上熟悉的css選擇器來選擇DOM節(jié)點柜去,多么滴熟悉。

$('body')

copy

通過此命令可以將在控制臺獲取到的內(nèi)容復制到剪貼板碰声。

copy(document.body)

然后你就可以到處粘了:

這里的控制臺命令只能在控制臺中環(huán)境中執(zhí)行诡蜓,因為他不依附于任何全局變量比如window熬甫,所以其實在JS代碼里是訪問不了這個copy方法的胰挑,所以從代碼層面來調(diào)用復制功能也就無從談起。

Timeline

Timeline面板是查看動態(tài)流的造锅。在這里可以測試頁面的性能問題抱慌。比如頁面的渲染速度蜀铲,動畫的流暢度等。


位置1:點擊這個按鈕開始Record贡这,按鈕變成紅色,再次點擊停止記錄厂榛。
位置2:選擇記錄生成的圖表模式
位置3:需要記錄的類型
位置4:fps指每秒的幀數(shù)盖矫,這個可以衡量頁面的渲染速度。如果超過60fps击奶,則頁面可能需要優(yōu)化下了辈双。如果超過30fps,則頁面的卡頓現(xiàn)象會比較嚴重柜砾。
位置5:記錄期間頁面加載的比重湃望。看哪個范圍的值特別大痰驱,占用時間最長证芭,然后有針對性的優(yōu)化。

Settings

勾選下面這個選項后就會在控制臺中打印出所有的Ajax請求地址担映。


Profile(性能優(yōu)化)

性能分析(Profiler)就是分析程序各個部分的運行時間废士,找出瓶頸所在,使用的方法是console.profile()蝇完。

   1: <script type="text/javascript">
   2:       function All(){
   3:             alert(11);
   4:          for(var i=0;i<10;i++){
   5:                 funcA(1000);
   6:              }
   7:         funcB(10000);
   8:       }
   9:
  10:       function funcA(count){
  11:         for(var i=0;i<count;i++){}
  12:       }
  13:
  14:       function funcB(count){
  15:         for(var i=0;i<count;i++){}
  16:       }
  17:
  18:       console.profile('性能分析器');
  19:       All();
  20:       console.profileEnd();
  21:     </script>

Audits 加載速度優(yōu)化參照的是雅虎前端工程師的十四條黃金建議

有趣功能

遠程調(diào)試

Android與PC雙向同步

支持在手機瀏覽器/native app中調(diào)試官硝,支持端口轉(zhuǎn)發(fā)诅挑,支持虛擬主機名映射(virtual host mapping)

準備條件:

1. Chrome32+
2. Android USB連接
3. 瀏覽器調(diào)試需要Android4.0+,以及Android Chrome(PC的Chrome要比Android版本高才行)
4. app調(diào)試需要Android4.4+泛源,以及WebView.setWebContentsDebuggingEnabled(true);

步驟:

1. 開啟USB調(diào)試拔妥,手機打開Chrome進入需要調(diào)試的頁面
2. PC打開Chrome進入chrome://inspect,勾選Discover USB devices
3. 在設(shè)備列表中點擊inspect開始遠程調(diào)試
4. 計時console.time/timeEnd(str); // 成對出現(xiàn)达箍,配合使用

設(shè)備傳感仿真

設(shè)備模式的另一個很酷的功能是模擬移動設(shè)備的傳感器没龙,例如觸摸屏幕和加速計。你甚至可以惡搞你的地理位置缎玫。這個功能位于元素標簽的底部硬纤,點擊“show drawer”按鈕,就可看見Emulation標簽 --> Sensors.


有道云真的給我印象很不好
參考這個吧


timeline 工具詳解

待讀

很多的技巧 英文 https://umaar.com/dev-tips/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赃磨,一起剝皮案震驚了整個濱河市筝家,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌邻辉,老刑警劉巖溪王,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異值骇,居然都是意外死亡莹菱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門吱瘩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來道伟,“玉大人,你說我怎么就攤上這事使碾∶刍眨” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵票摇,是天一觀的道長拘鞋。 經(jīng)常有香客問我,道長兄朋,這世上最難降的妖魔是什么掐禁? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮颅和,結(jié)果婚禮上傅事,老公的妹妹穿的比我還像新娘。我一直安慰自己峡扩,他們只是感情好蹭越,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著教届,像睡著了一般响鹃。 火紅的嫁衣襯著肌膚如雪驾霜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天买置,我揣著相機與錄音粪糙,去河邊找鬼。 笑死忿项,一個胖子當著我的面吹牛蓉冈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播轩触,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼寞酿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了脱柱?” 一聲冷哼從身側(cè)響起伐弹,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎榨为,沒想到半個月后惨好,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡柠逞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年昧狮,在試婚紗的時候發(fā)現(xiàn)自己被綠了景馁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片板壮。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖合住,靈堂內(nèi)的尸體忽然破棺而出绰精,到底是詐尸還是另有隱情,我是刑警寧澤透葛,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布笨使,位于F島的核電站,受9級特大地震影響僚害,放射性物質(zhì)發(fā)生泄漏硫椰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一萨蚕、第九天 我趴在偏房一處隱蔽的房頂上張望靶草。 院中可真熱鬧,春花似錦岳遥、人聲如沸奕翔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽派继。三九已至宾袜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驾窟,已是汗流浹背庆猫。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绅络,地道東北人阅悍。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像昨稼,于是被迫代替她去往敵國和親节视。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,727評論 25 707
  • 前言 相信無論是對于身居一線的coder,還是退居多年的老司機managers來說,對于調(diào)試程序是不陌生的,對于w...
    itclanCoder閱讀 2,565評論 0 7
  • 在做前端開發(fā)時假栓,我們需要用到一些調(diào)試工具用來調(diào)試我們的HTML寻行、CSS或者JS代碼,俗話說預先善其事必先利其器匾荆,這...
    Rella7閱讀 23,908評論 0 15
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案拌蜘? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,734評論 1 92
  • 文/青衫 午飯過后,和同桌的同事下樓走了兩圈牙丽,聊了一下童年简卧。 講著講著就講到了學校,講著講著就講到了那些年在學校拍...
    青衫recho閱讀 322評論 0 1