按平台不同,web调试可以分为桌面web调试和移动端web调试两种,其中用到的调试方法也有所不同。
桌面web调试有比较成熟的方法和工具可供使用,例如利用chrome自带的调试工具或者firebug插件可以比较方便的调试样式类问题,js执行流程问题以及网络相关问题等。
移动端方面由于设备以及浏览器自身限制,无法提供类似桌面浏览器中功能强大的控制台,使得移动端页面调试没有桌面web调试那么便捷。针对不同的调试内容,目前也有较多的方法和工具可以使用。
移动端web调试可以分为两种场景,模拟调试和真机调试。这两种调试场景用到的工具和方法是不同的,一般来说移动端web页面开发过程中会使用模拟调试来保证页面展示,页面业务流程的正确性,由于模拟调试不能代表页面真实的运行环境,待集成测试阶段会选择真机调试来保真版本稳定性。
移动端web模拟调试比较简单,利用桌面浏览器就可以很好的进行。例如chrome的device toolbar模式,firefox的响应设计模式,都支持自定义屏幕尺寸,自定义userAgent。也可以使用微软的Vorlon.JS工具。桌面web调试用的一些方法技巧都可以用在移动端web的模拟调试过程。
移动端web真机调试的工具和方法主要分为三类:1.本机浏览器模拟控制台调试;2.基于B/S的远程调试;3.基于webview的调试。
本机浏览器模拟控制台调试
这种方法的原理是在移动端浏览器上模拟出控制台效果,但是和桌面浏览器的控制台相比,功能比较弱。例如腾讯的日志调试工具MLogger;功能稍复杂支持dom/css查看修改,支持查看网络请求,支持源码查看,支持日志输出的Eruda。由于移动端屏幕较小,使用这种方式调试web页面,不是很方便。
基于B/S的远程调试
这种方法的原理是需要起一个服务器来连接调试目标,然后服务器提供一个页面,在该页面上可以查看在调试目标上的一些操作结果。例如支持dom/css查看修改,支持查看网络请求的weinre;支持控制台输出,支持js求值的jsconsole。
基于webview的调试
这种方法的原理是桌面浏览器通过usb数据线连接到手机上的webview,然后把webview中的页面资源同步加载到桌面浏览器中,在webview中的操作结果和桌面浏览器中的操作结果可以互相影响。这种方法还支持断点调试,功能相较上面两种要强大一点。例如google的chrome://inspect方法,不过也有限制条件,只支持andriod,需要翻墙,系统版本需要4.3以上;firefox的WebIDE,需要安装firefox的app版本浏览器,不适合调试其他app的内嵌页面;以及safari原生支持的调试工具,不支持android,不过调试ios比较方便。