关于app上页面和js的调试
不久前折腾了一晚上关于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的调试的更多相关文章
- 在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure
[题外话] 上次介绍了VS上开发Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的开发和调试功能,当然很多情况下由于平台限制等原因需要在 ...
- 在mac上如何用safari浏览器调试ios手机的移动端页面
第一步 打开iphone手机的开发者模式,流程是:[设置]->[Safari]->[高级]->开启[Web检查器] 第二步 打开Mac上Safari的开发者模式,流程是[Safari ...
- 调试经验分享-让自己的电脑充当WI-Fi模块,用来抓取连接Wi-Fi模块APP上的通信数据
需求 手头有了厂家的APP和Wi-Fi模块 在已经知道APP是通过TCP连接Wi-Fi模块(8266), 同时也知道了连接的端口号的 情况下如何知道厂家的APP发送给Wi-Fi模块的数据 打开自己的笔 ...
- JS事件调试
JS事件调试 - 查找HTML元素绑定的事件以及绑定代码所在位置 日常的网页开发调试工作中,经常需要知道指定的某个网页元素绑定了哪些事件以及绑定代码的位置,下面介绍三种用来跟踪页面中的事件的方法. ...
- Dynamics CRM JS的调试的弊端解决办法
说道CRMJS的调试的博客,之前已经有人写过.很简单,和平常网站JS的调试过程大致相同. 但是Dynamics 中JS调试最麻烦的莫过于出错之后需要修改代码了.因为随着JS代码的修改,伴随着需要保存和 ...
- MUI框架开发HTML5手机APP(二)--页面跳转传值&底部选项卡切换
概 述 JRedu 在上一篇博客中,我们学习了如何使用Hbuilder创建一个APP,同时如何使用MUI搭建属于自己的第一款APP,没有学习的同学可以戳链接学习: http://www.cnblo ...
- PHP实现openSug.js参数调试
这是一款利PHP对百度搜索下拉框提示免费代码实现参数配置调试的程序源代码. 由想要对网站进行搜索下拉调试的站长朋友们进行方便.快速的效果演示,具体参考下面的PHP代码. 如何使用? 请新建一份PHP文 ...
- App配置页面头部
记录一下 App配置页面头部 例 上图红色框部分就是自己配置的头部 //我的客户 "/OACustomer/Index": { title: "我的客户", h ...
- iOS提交应用至App Store流程及真机调试 一,证书、配置文件
前言:你要有苹果开发人员账号,我用的是个人账号.其次xcode为xcode 7,因为xcode 7须要 os x 系统 10.11 或更高的版本号, 所以os x 系统也须要 10.11 或更高的版本 ...
随机推荐
- linux tail命令的使用方法详解 (转载)
本文介绍Linux下tail命令的使用方法.linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新 ...
- [置顶] Android AlarmManager实现不间断轮询服务
在消息的获取上是选择轮询还是推送得根据实际的业务需要来技术选型,例如对消息实时性比较高的需求,比如微博新通知或新闻等那就最好是用推送了.但如果只是一般的消息检测比如更新检查,可能是半个小时或一个小时一 ...
- 修改ThinkSNS网站入口
1.先设置游客访问的黑/白名单,不需要开放的,可以注释掉.通过修改acesss.php文件. 2.修改OpenSociax.php文件实现.
- hadoop备战:hadoop,hbase兼容版本号汇总
Hbase的安装须要考虑Hadoop的版本号,即兼容性.有不足的希望能指出. 下面考究官网得到的,关于hadoop版本号和hbase版本号可到下面网址中下载:http://mirror.bit.edu ...
- Flexigrid在IE下不显示数据的处理
文章总结自我的论坛提问: http://bbs.csdn.net/topics/390498434?page=1#post-394918028 解决方法: 网上的答案经我验证都是不靠谱的,以后大家就知 ...
- Swift学习笔记十五
自动引用计数(Automatic Reference Counting) 和OC一样,Swift用自动引用计数机制来跟踪和管理你应用程序的内存,大多数情况下,你不需要考虑自己管理内存,Swift会自动 ...
- 汉化Eclipse+配色方法(官方语言包)
一. 汉化方法: 1.Eclipse版本查询:安装目录readme,查版本号;参照查代号如下表: 代号 平台版本 项目 主要版本发行日期 SR1发行日期 SR2发行日期 N/A 3.0 [1] N/A ...
- 0c-41-ARC使用特点及注意事项
1.ARC特点总结 1)不允许调用release,retain,retainCount 2)允许重写dealloc,但是不允许调用[super dealloc] 3)@property的参数: str ...
- 云服务器 ECS Linux 误删除文件恢复方法介绍
云服务器 ECS Linux 下,rm -rf 意味着一旦删除的文件是无法挽回的.但如果在没有文件覆盖操作的前提下,可以先尝试相关方式进行文件恢复. 本文对此进行简要说明. https://help ...
- tar备份工具
一.tar命令的基本格式 在UNIX.Linux系统中,有许多命令可以用于备份数据,其中最常见的命令是tar命令..tar是UNIX和Linux系统中的打包工具,可以将多个文件或目录打包(也称为归档) ...