W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在開始之前,請(qǐng)確保您的計(jì)算機(jī)上有Node.js。
IntelliJ IDEA與Spy-js集成,后者是JavaScript開發(fā)人員的工具,可讓您調(diào)試/跟蹤/分析在不同平臺(tái)/瀏覽器/設(shè)備以及服務(wù)器端Node.js應(yīng)用程序上運(yùn)行的JavaScript。您還可以使用ECMASript6,CoffeeScript和TypeScript代碼跟蹤應(yīng)用程序。Spy-js識(shí)別源映射,用于設(shè)置原始代碼與編譯期間生成的JavaScript代碼之間的對(duì)應(yīng)關(guān)系。
為了跟蹤腳本,Spy-js通過插入檢測指令來動(dòng)態(tài)修改它,該指令向Spy-js UI報(bào)告腳本執(zhí)行時(shí)調(diào)用的函數(shù)。
Spy-js使用不同的機(jī)制來跟蹤Web應(yīng)用程序和Node.js應(yīng)用程序。
所有與跟蹤相關(guān)的活動(dòng),例如查看捕獲的事件,檢查其調(diào)用堆棧,導(dǎo)航到源代碼等,都在專用的Spy-js工具窗口中執(zhí)行,特別是在其Trace Run選項(xiàng)卡中。該選項(xiàng)卡由一個(gè)工具欄和三個(gè)窗格組成:
從IntelliJ IDEA開始,Spy-js啟動(dòng)時(shí)使用Spy-js類型的運(yùn)行/調(diào)試配置來跟蹤Web應(yīng)用程序,或者使用Node.js的Spy-js類型來跟蹤Node.js應(yīng)用程序。
該跟蹤服務(wù)器端口會(huì)自動(dòng)填充。為避免端口沖突,建議您接受建議的值并選中“自動(dòng)配置系統(tǒng)代理”復(fù)選框。
或者,清除復(fù)選框以手動(dòng)指定代理設(shè)置。清除“自動(dòng)配置系統(tǒng)代理”復(fù)選框。了解如何在Windows,Mac,Ubuntu,iOS,Android,Windows Phone上手動(dòng)配置代理設(shè)置。請(qǐng)注意,某些桌面瀏覽器有自己的代理設(shè)置配置屏幕。
一個(gè)配置文件是具有.js或者.conf.js擴(kuò)展的JavaScript文件,包含滿足Spy-js的配置需求的有效的JavaScript代碼。如果IntelliJ IDEA在項(xiàng)目中檢測到具有擴(kuò)展名.conf.js的文件,則這些文件將顯示在下拉列表中。
手動(dòng)鍵入配置文件的路徑,或單擊“瀏覽”
,并在打開的對(duì)話框中選擇位置。指定后,配置文件將添加到下拉列表中,以便下次從列表中獲取而不是指定路徑。
如果要跟蹤C(jī)offeeScript,請(qǐng)指定生成的JavaScript文件的路徑。該文件可以在外部生成,也可以使用文件監(jiān)視器進(jìn)行編譯。
該跟蹤服務(wù)器端口會(huì)自動(dòng)填充。為避免端口沖突,建議您接受建議的值并選中“自動(dòng)配置系統(tǒng)代理”復(fù)選框。
一個(gè)配置文件是具有擴(kuò)展.js或者.conf.js的JavaScript文件,其包含滿足Spy-js的配置需求的有效的JavaScript代碼。如果IntelliJ IDEA在項(xiàng)目中檢測到具有擴(kuò)展名.cong.js的文件,則這些文件將顯示在下拉列表中。
手動(dòng)鍵入配置文件的路徑,或單擊“瀏覽”
并在打開的對(duì)話框中選擇位置。指定后,配置文件將添加到下拉列表中,以便下次從列表中獲取而不是指定路徑。
Spy-js將跟蹤會(huì)話的調(diào)用和屬性存儲(chǔ)在.json中,這些文件可以壓縮到zip存檔中。您可以在以后隨時(shí)提取它們,以將跟蹤會(huì)話圖像加載到Spy-js中。請(qǐng)注意,加載的映像不會(huì)還原會(huì)話,因?yàn)閷?shí)際上沒有執(zhí)行任何腳本。您所能做的就是分析以前執(zhí)行的代碼的流程和屬性。
默認(rèn)情況下,Spy-js捕獲所有打開的網(wǎng)頁上的所有事件,不包括https安全網(wǎng)站,除非您在運(yùn)行配置中明確指定其URL地址。所有捕獲的事件都顯示在Spy-js工具窗口的“事件”窗格中。您可以通過應(yīng)用用戶定義的事件過濾器來禁止捕獲某些類型的事件。
您可以動(dòng)態(tài)定義新的自定義過濾器或向現(xiàn)有過濾器添加事件模式。
在“事件”窗格中瀏覽已捕獲事件的樹時(shí),您可能會(huì)遇到一些您絕對(duì)不想跟蹤的事件或腳本。您可以按上述方法創(chuàng)建過濾器,但在這種情況下,您必須離開窗格。使用IntelliJ IDEA,只要您從“事件”窗格中檢測到此類事件或腳本,就可以基于任何事件或腳本創(chuàng)建排除規(guī)則。
時(shí)間戳標(biāo)簽可幫助您在特定時(shí)間段內(nèi)分析代碼執(zhí)行情況。例如,您可以設(shè)置兩個(gè)時(shí)間戳標(biāo)簽并查看它們之間捕獲的事件。或者相反,您可以找到在特定時(shí)間段內(nèi)未捕獲的事件,盡管您期望這些事件可以檢測到性能問題。
“事件堆?!贝案衽c“事件”窗格和編輯器同步。
Spy-js支持源映射,這意味著您現(xiàn)在可以從“事件堆棧”窗格右側(cè)跳轉(zhuǎn)到ECMAScript 6,TypeScript或CoffeeScript中的原始源代碼,并觀察執(zhí)行的代碼片段。
Spy-js還生成映射的跟蹤文件。這些都是ECMAScript 6,TypeScript或CoffeeScript中的跟蹤文件,它們具有.ts.trace,.coffee.trace或.js.trace擴(kuò)展。這些文件中的代碼片段會(huì)突出顯示,就好像它們是真正執(zhí)行的一樣。
或者,您可以通過選擇Jump to Trace導(dǎo)航到執(zhí)行的JavaScript代碼。
配置源映射的處理:
從函數(shù)調(diào)用導(dǎo)航到其源代碼:
從函數(shù)導(dǎo)航到其調(diào)用:
使用高級(jí)跟蹤導(dǎo)航,您可以根據(jù)調(diào)用移動(dòng)整個(gè)堆棧并找到尚未調(diào)用的函數(shù),即找到尚未執(zhí)行的代碼片段并分析跳過它們的原因。
可以使用以下六個(gè)操作:轉(zhuǎn)到跟蹤文件中下一個(gè)/當(dāng)前/上一個(gè)函數(shù)的下一個(gè)/上一個(gè)調(diào)用。完整的操作列表可從“事件堆?!贝案竦纳舷挛牟藛沃蝎@得。從“事件堆棧”窗格的導(dǎo)航工具欄中還可以查看所選函數(shù)的下一個(gè)和上一個(gè)調(diào)用、上一個(gè)函數(shù)的前一個(gè)調(diào)用和下一個(gè)函數(shù)的下一個(gè)調(diào)用。
當(dāng)您選擇其中一個(gè)操作時(shí),光標(biāo)會(huì)跳轉(zhuǎn)到堆棧中的調(diào)用。如果按下自動(dòng)滾動(dòng)到跟蹤切換按鈕,則相應(yīng)的跟蹤文件會(huì)自動(dòng)打開,并且光標(biāo)位于調(diào)用處。
通過高級(jí)跟蹤搜索,您可以在整個(gè)跟蹤中的函數(shù)調(diào)用之間進(jìn)行導(dǎo)航(跨所有跟蹤的事件)。這意味著如果您在瀏覽器和事件窗格中跟蹤5個(gè)頁面,相應(yīng)地顯示5個(gè)文檔節(jié)點(diǎn),IntelliJ IDEA將在所有這些節(jié)點(diǎn)下搜索所選函數(shù)的調(diào)用,并在狀態(tài)欄中顯示找到的函數(shù)調(diào)用的數(shù)量。
當(dāng)您調(diào)用另一個(gè)高級(jí)搜索或?qū)Ш綍r(shí),將重置搜索結(jié)果并隱藏搜索工具欄。
另請(qǐng)注意,當(dāng)您選擇“在所有事件中搜索此函數(shù)調(diào)用”選項(xiàng)時(shí),將計(jì)算調(diào)用發(fā)生次數(shù)。在分析檢測到的調(diào)用時(shí),時(shí)間過去了,捕獲了新事件,并且第一次檢測到的調(diào)用可能已經(jīng)從堆棧中刪除,這意味著它不再可用于導(dǎo)航。
在所有文檔節(jié)點(diǎn)中搜索函數(shù)的調(diào)用:
在找到的調(diào)用中導(dǎo)航:
術(shù)語Spy-js autocompletion(Spy-js自動(dòng)完成)表示使用從運(yùn)行時(shí)數(shù)據(jù)中檢索的建議來擴(kuò)展基本完成列表。于已經(jīng)執(zhí)行的代碼(在相應(yīng)的跟蹤文件中以綠色突出顯示),該Spy-js自動(dòng)完成功能可以從源文件獲得。
當(dāng)您將插入符號(hào)放在源文件中的符號(hào)并按下時(shí)Ctrl+Space,Spy-js將從瀏覽器或正在運(yùn)行的Node.js應(yīng)用程序中檢索數(shù)據(jù),并根據(jù)以下規(guī)則將其與基本完成列表合并:
術(shù)語Spy-js magnification(Spy-js放大)表示在沒有實(shí)際運(yùn)行調(diào)試會(huì)話的情況下計(jì)算表達(dá)式。當(dāng)您單擊有問題的表達(dá)式或?qū)⒉迦敕?hào)放在其上并按下Ctrl+Alt+F8時(shí),工具提示將顯示在顯示表達(dá)式值的表達(dá)式下方。如果Spy-js檢索多個(gè)值,請(qǐng)單擊工具提示中的
圖標(biāo)以展開值列表。
該放大功能可以從源文件都執(zhí)行和未執(zhí)行的代碼。
默認(rèn)情況下,該功能已關(guān)閉。
使用Spy-js,您可以構(gòu)建和檢查客戶端和Node.js應(yīng)用程序的運(yùn)行時(shí)應(yīng)用程序/事件圖。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: