网络 Network
网络面板是 eruda-plus 相对原版 eruda 变化最大的部分,几乎按 Chrome DevTools 的信息架构重写了一遍。它覆盖了请求从发出到结束的全生命周期:捕获、过滤、检查、编辑(屏蔽/重写/Mock)、限速与导出。本页按能力模块逐一说明。
请求列表与详情
面板以表格呈现所有捕获的请求,包含名称、方法、状态、类型、大小、时间与瀑布图七列。瀑布图按时间轴对齐绘制,每段请求以颜色区分排队、等待与下载阶段。点击任意行进入详情视图,详情包含:
- Headers:常规信息(URL、方法、状态码)、请求头与响应头完整清单。
- Response / Preview:响应原文与格式化预览,JSON 自动树状展开。
- Initiator:发起该请求的调用栈位置,帮助你定位「这个请求是谁发的」。
- Timing:排队、DNS、连接、等待、下载等时序分段。
顶部工具条支持按状态筛选(全部 / 文档 / XHR / JS / CSS / 图片 / 失败),并提供关键词过滤与正则过滤。{ } 按钮可以把选中请求复制为 fetch 代码,cURL 按钮生成 curl 命令,直接粘贴到终端重放。
屏蔽请求
点击工具条的规则按钮打开「屏蔽 / 重写 / Mock」面板,第一个标签页就是屏蔽(Blocked)。填写匹配模式(每行一条,支持关键词与 /正则/ 两种写法),勾选启用后,所有命中模式的请求都会被拦截:
- 请求以 403 状态出现在列表中,状态列显示
blocked徽标。 - fetch 调用会收到
Blocked by eruda的合成响应;XHR 的行为与服务器断开一致。 - 屏蔽规则保存在 localStorage,刷新页面后依然生效。
典型用途:临时屏蔽某个报错的第三方脚本、验证广告拦截器的影响、阻断埋点上报以净化网络日志。
URL 重写
重写(Rewrite)标签页可以建立 模式 → 替换 的映射,请求发出前 URL 会被逐条替换。重写发生在所有规则链的最前端,也就是说重写后的 URL 才会进入屏蔽与 Mock 的匹配流程。常用场景包括:
- 把
https://api.example.com重写为http://localhost:3000,让真机直接请求本地服务。 - 把测试域名重写到生产域名(或反过来)对比行为差异。
- 为同一接口维护多个环境切换规则,随取随用。
响应 Mock
Mock 标签页可以为命中的请求合成完整响应:状态码、Content-Type 与响应体都可自定义。Mock 命中的请求在列表中以 200 * 这样的带星状态码标记,与真实请求区分。面板中每条规则支持启用开关与多行 JSON 响应体。
配合首页「测试」下拉栏可以立即体验:添加一条 500 + {"code":500} 的 Mock 规则后请求 /mock-demo,即可在控制台与网络面板同时观察到一次「服务端错误」的完整链路。Mock 与重写规则同样持久化保存,适合长时间挂机调试。
网络节流
工具条右侧的节流下拉提供 DevTools 同款档位:
| 档位 | 延迟 | 带宽 |
|---|---|---|
| 无节流 | 0 | 不限 |
| Slow 3G | 400ms | 50 KB/s |
| Fast 3G | 150ms | 180 KB/s |
| Offline | — | 完全断网 |
节流对 XHR 与 fetch 同时生效:请求先按档位延迟排队,再按带宽计算下载耗时。Offline 档位下请求直接以网络错误失败,可以验证页面的离线降级逻辑。也可以在代码中编程切换:eruda.get('network').throttle('slow3g')。
HAR 导入导出
- 导出:工具条下载按钮把当前请求日志打包为标准 HAR 文件,可直接拖进桌面 DevTools 的 Network 面板查看。
- 导入:从抓包工具(ProxyPin、Charles 等)或 DevTools 导出的 HAR 也可以导入回放,历史请求会按原始时序出现在列表中,支持完整的详情检查。
快捷语言切换
工具条右下角的「中/EN」按钮可以在不离开网络面板的情况下切换整站语言,表头、时序段、状态徽标会即时翻译。这只是一个快捷入口,与设置面板中的语言选项等效。