亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

js調(diào)試系列 源碼定位與調(diào)試[基礎篇]

 更新時間:2014年06月18日 11:16:51   投稿:mdxy-dxy  
如果看了1, 2兩篇,你對控制臺應該有一個初步了解了,今天我們來個簡單的調(diào)試。昨天留的三個課后練習,差不多就是今天要講的內(nèi)容

我們先來處理第一個問題:1. 查看文章下方 推薦 這個功能所調(diào)用的函數(shù)源碼
其實非常簡單,點放大鏡選中那個推薦即可。

這個  votePost(cb_entryId,'Digg')  就是推薦按鈕所調(diào)用的函數(shù)了,是不是非常簡單。

第二個問題,定位到函數(shù)所在文件位置。
其實也是非常簡單的,當然,不熟悉控制臺的朋友也許不知道怎么看。
我在控制臺輸入 votePost 然后回車,

函數(shù)源碼粗顯啦,并且在右下角有個鏈接 blog-common.js?v=WE8o1xrgcTu07QVvwYqERqD7AA8fdJp_dgoE-crAT3k1:1 這個是什么意思呢?
后面的 v=WE8o1xrgcTu07QVvwYqERqD7AA8fdJp_dgoE-crAT3k1 直接忽略好了。

ps: 如果想知道這個是什么東西,其實就是個版本號,至于什么作用,往往是防止緩存的,具體自己上網(wǎng)搜索吧。
blog-common.js:1 差不多就是這個意思。。
blog-common.js 是這個函數(shù)所在的js文件
1 是代碼所在的行號。

直接點擊這個鏈接,就可以跳轉(zhuǎn)到 Sources 面板,這個就是源碼面板,調(diào)試最重要的一個功能,之后會慢慢介紹。

可是所有代碼都在一行,我們改怎么看? 4946 個字符呢,全縮在一行上。。
chrome 給我們提供了一個代碼格式化的功能,點擊下方那個 Pretty print 按鈕即可格式化代碼。

格式化完畢之后就是非常美觀的代碼了,至于看不看的懂,那是另一回事了。
有的看不懂可能是代碼被UglifyJS,Google's Closure之類的工具編譯過,如 jquery.min.js 文件。
還有可能是水平太次了,暫時看不懂大神寫的代碼,那我也無能為力,你只能自己加油了努力提升實力了。
如果格式化夠找不到函數(shù)所在位置,也不要著急,有我在,慌啥?
回到剛才控制臺面板。

你欣喜的發(fā)現(xiàn),blog-common.js?v=WE8o1xrgcTu07QVvwYqERqD7AA8fdJp_dgoE-crAT3k1:91
行號變成 91 了,現(xiàn)在再點擊這個鏈接,就可以跳轉(zhuǎn)到對應格式化后的位置了,是不是超方便。。

最后一個問題,修改函數(shù)使其無效,這個最簡單了,比剛才的簡單多了,可是很多人不會操作所以我特地拿出來講一下。
首先,我們知道了 推薦 這個功能調(diào)用的函數(shù)是  votePost(cb_entryId,'Digg') ,而且他是直接寫是 html 上通過 onclick 綁定的。
所以這個函數(shù)是一個全局函數(shù),到處都可以調(diào)用,那這意味著什么呢?
意味著我們可以修改啊,好比一個全局變量,你在哪都能修改對吧,那全局函數(shù)也是應該道理。
所以我們直接修改為空函數(shù)即可。
 votePost = function () {};  或者  votePost = $.noop;  都可以。$.noop 是 jQuery 為我們提供的空函數(shù),方便我們使用。


現(xiàn)在 votePost 就是一個空函數(shù),所以你點擊 推薦 按鈕是不會發(fā)生任何事情的。
當然刷新頁面后會重新生效,我們只是在頁面上調(diào)試修改而已,沒有去改博客園的源碼,是不可能永久生效的。
所以調(diào)試的意思就是查找與排除錯誤的過程,如果定位到錯誤源了,修改下然后測試,如果不對,刷新后重新修改,這樣就不必修改實際文件而導致不可恢復了。

今天的內(nèi)容差不多就這些了,其實現(xiàn)在很少有直接全局函數(shù)給你調(diào)試的,因為現(xiàn)在 jQuery 風靡,各種 click, on 之類的事件綁定,導致源碼定位非常繁瑣。
好在我之前寫了一篇,比較詳細的分析了這個問題,詳情請參閱《淺談 jQuery 事件源碼定位問題
其他框架我也不熟,所以沒分析,不過思路其實是差不多的,必然都會有一個事件管理機制。

今天知識點不多,但是要自己動手鞏固下,不然會秒忘的。

課后練習:
1. 分析 votePost 函數(shù)是如何實現(xiàn) 推薦 的。
2. 動態(tài)調(diào)試分析 votePost。(要結(jié)合斷點知識)

明天要講斷點與動態(tài)調(diào)試,我也沒找到合適的題目,就先湊合著做吧,如果你有合適的東西需要動態(tài)調(diào)試的,請跟帖。。

相關文章

  • JavaScript獲取GridView選擇的行內(nèi)容

    JavaScript獲取GridView選擇的行內(nèi)容

    一般GridView第一列是多選框CheckBox,負責標記當前行是否被選中,后面可以有文本框TextBox,下拉框DropDownList,標簽Lable
    2009-04-04
  • js獲取元素的外鏈樣式的簡單實現(xiàn)方法

    js獲取元素的外鏈樣式的簡單實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨s獲取元素的外鏈樣式的簡單實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 解決mui框架中switch開關通過js控制開或者關狀態(tài)時小圓點不動的問題

    解決mui框架中switch開關通過js控制開或者關狀態(tài)時小圓點不動的問題

    今天小編就為大家分享一篇解決mui框架中switch開關通過js控制開或者關狀態(tài)時小圓點不動的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JS如何使用剪貼板操作Clipboard API

    JS如何使用剪貼板操作Clipboard API

    瀏覽器允許JavaScript腳本讀寫剪貼板,自動復制或粘貼內(nèi)容。一般來說,腳本不應該改動用戶的剪貼板,以免不符合用戶的預期。但是,有些時候這樣做確實能夠帶來方便,比如"一鍵復制"功能,用戶點擊一下按鈕,指定的內(nèi)容就自動進入剪貼板。本文將介紹3種方法來實現(xiàn)。
    2021-05-05
  • p5.js入門教程之小球動畫示例代碼

    p5.js入門教程之小球動畫示例代碼

    本篇文章主要介紹了p5.js入門教程之小球動畫示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • JavaScript 禁止用戶保存圖片的實現(xiàn)代碼

    JavaScript 禁止用戶保存圖片的實現(xiàn)代碼

    這篇文章主要介紹了JavaScript 禁止用戶保存圖片的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 微信小程序如何調(diào)用圖片接口API并居中顯示

    微信小程序如何調(diào)用圖片接口API并居中顯示

    這篇文章主要介紹了微信小程序如何調(diào)用圖片接口API并居中顯示,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-06-06
  • js輸入中文效果

    js輸入中文效果

    js輸入中文效果...
    2006-09-09
  • js大數(shù)相加出現(xiàn)精度丟失、運算錯誤的問題

    js大數(shù)相加出現(xiàn)精度丟失、運算錯誤的問題

    js中數(shù)字類型長度達到16位時,進行加減乘除運算,會出現(xiàn)精度丟失,運算結(jié)果錯誤的問題,本文講述精度丟失的原因及解決辦法
    2023-08-08
  • 詳解JSON和JSONP劫持以及解決方法

    詳解JSON和JSONP劫持以及解決方法

    這篇文章主要介紹了詳解JSON和JSONP劫持以及解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03

最新評論