關於app上頁面和js的調試

來源:互聯網
上載者:User

標籤:

不久前折騰了一晚上關於app上的頁面和js的調試:

首先得準備幾個比較比較常用的工具:

1、chrome(這個都沒有你還幹啥fe呀)

2、Fiddler(抓包神器,基本也是必備咯)

3、sublime(編輯器至少得有一個吧)

then?

開啟Fiddler,配置設定啥的都不在這裡說了,篇幅有點長,PS:(不過比較方便的一個東西就是Fiddler上可以配hosts,不用再hosts檔案下去配hosts了)

這裡說一下app裡面的調試和一般的M端web調試的不同,在M端調試時把頁面和js代理到本地修改就ok了,但是app裡面就不一樣了,app裡面的頁面和js很倔強,走緩衝走的很嚴重,所以在這裡我們簡單敘述一下app的頁面和js調試;

then?

假如前面的工具和配置都OK了,能正常抓包

一、頁面html調試

1、抓包:開啟Fiddler,用手機訪問需要調試的頁面,這時Fiddler上面會抓到一個記錄,如:

then?

2、ctrl+u拷貝出抓到的地址放到chrome裡面訪問,這樣就可以看到手機上面訪問的頁面了,then在chrome裡面再ctrl+u就可以查看頁面源碼,把源碼copy出來單獨起一個頁面,在Fiddler裡面把線上訪問的頁面代理到本地,注意這裡我們把單起的頁面的title改一下方便我們觀察是否代理本地成功了:

3、我們在代理的時候需要注意到的是在app裡面訪問Fiddler抓到的地址的最後包括os和webaddress,如果是安卓的機器的話你需要手動吧os改成ios才能正確訪問;

另外一個問題就是webaddress在每次訪問的時候都會動態改變,所以我們在代理的時候不要把後面的webaddress=xxxxxx加上,否者,你懂得

4、像上面的這樣代理成功後訪問app上面的頁面,......頁面咋沒變? 當然沒變咯我們在做一下處理,改一下頁面顯示(在代理到本地的html頁面上的顯示部分加點東西),像這樣:

好了頁面代理差不多就是這樣,你可以在本地任意修改你的頁面了,app上也會有和chrome同步的變化

then?

二、app上js的調試:

1、首先你的指導你要調試那個js,也就是那個js出問題了,這個定位問題的速度需要經驗,不如說對全站商務邏輯比較熟悉的話,一看就知道是啥出了問題,是哪個js出了問題

一般來說我們是通過bug的view表現頁面元素去找對應的id或者class,或者知道一些實現的方法名/參數名,然後通過在chrome裡面搜尋對應的js

2、ok,找到相應的js後又把它代理到本地,這裡需要注意的是我們一般去svn找到最新的代碼down下來放到本地,然後把線上的js代理到本地,

new.js是從svn上down下來的mclient.publish2.js,

3、代理好了之後,在new.js裡面加點可以證明代理好了的代碼,alert()最好,為啥?因為app上不認console,試著在chrome上看看(當然這裡也需要注意到一點就是為了方便看到js是否真正代理到本地了,我們也需要像html一樣做,在js第一行做一些標記,表明這個不是線上的js),被嚇到了吧,啥反應都沒得;為什麼呢?

模板上載入的js明明是:

<script type="text/javascript" charset="utf-8" src="http://pic2.58.com/m58/app58/m_static/js/mclient.publish2.js?cachevers=575"></script>

也把它代理到了本地:

為什麼就不行呢?這就是app上比較倔強的地方,由於app裡面會緩衝已經載入好了的js,app上面也不能像瀏覽器一樣可以清除緩衝和強制重新整理,所以基本都是通過?加上版本號碼來更新js(這個不同公司更新方法不同,具體的請移步張雲龍老師的blog靜態資源的緩衝更新),版本號碼一致的話,app將不會更新這個js(不會發出請求),所以代理的js不會生效,

解決辦法就是讓它更新,在模板裡面把載入的js版本號碼改變一下:

ok,改好了,然後又試試!......還是不行,為什麼,應該大家都懂,當時搗騰這個的時候進入了一個誤區,代理的時候的地址帶了版本號碼575的,然而模板裡面請求的是帶版本號碼576的js,很明顯代理不成功嘛,

then

解決辦法有兩個:

a、把代理的時候的地址帶了版本號碼575改成576,這個辦法比較挫,因為每次修改完本地的new.js你需要看到修改後的效果你都需要做兩件事情,1就是把模板裡面載入的js版本號碼增加一下,2就是需要把代理的版本號碼也改成和模板載入的js版本號碼一致

b、代理的時候不帶版本號碼:

這樣的話就不需要你每次修改本地js都去改代理的js版本號碼了,而只需要把模板上的版本號碼增加一下就ok了

then?

end

文章沒review,有錯請大家指出

 

關於app上頁面和js的調試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.