Weinre
weinre
全名web inspector remote
,就是web
远程调试工具,可以远程调试页面,浏览器端其实用处不大,移动端却意义非凡,毕竟移动端可没有Chrome Console
等调试工具存在的.
安装
使用npm
能够很容易的将weinre
安装到机器上
sudo npm -g install weinre
结构
weinre
主要包含三层结构:
- target: 调试的目标页面,需在页面中嵌入脚本
- client: 调试用的页面,用于调试页面
- agent: 搭建了
weinre
的服务端,用于和target
&client
通信
原理
weinre
主要使用webSocket
通信来连接调试页面和被调试页面,target
中嵌入weinre
调试脚本后会向服务端发起webSocket
请求, 打开client
页面后,client
也会像服务端发起请求,如此通过agent
便能成功与target
进行通信.
配置
~/.weinre/server.properties
中有着weinre
的主要配置:
- boundHost: 监听的
host
,可设置为-all-
即可监听所有 - httpPort: 监听的端口号
- reuseAddr:
May be needed if you restart your server frequently.
当你频繁的重启服务器是可能会用到,好像是自动占用端口号的意思?不清楚 - readTimeout: 发送信息到
target
或client
时的Timeout
- deathTimeout:
target
或client
无响应存活时间的Timeout
运行
可以直接将配置当作参数运行时加载
weinre -boundHost host -httpPort port
脚本
运行weinre
后打开浏览器后可看到weinre
的介绍,在Target Script
中可以看到如何向target
中嵌入脚本.脚本后的锚点部分为id
标识,在可以在client
页面中加入同样的id
来查看对应id
的target
.(注意不要忘记添加 id,不然可能没法成功,同事没加成功了,我没加死活看不到,不知道为啥)
也可以使用标签的方式为target
添入脚本启动weinre
,在Target Bookmarklet
可以看到描述,然并卵,因为手机上没用啊...
调试
页面嵌入脚本后打开页面,然后打开对应的调试页面http://host:port/client/#id
,可以看到Remote
中的targets
和clients
列表, 还有Server Properties
的配置,在targets
中点击需要调试的页面选中,就可以随意调试了,效果还是相当不错的.
面板
调试主要包括 6 个面板:主要是上面说到的Remote
以及其它五个同样可以在chrome
控制台看到的面板 :Elements
、Resources
、Network
、Timeline
、Console
等,功能和Chrome
控制台中相差不多,不细说.
比较蛋疼的是
weinre
对网速的要求比较高,没办法,这是肯定的,所以偶尔会出现不够实时等现象.