Chrome 网络调试器让我可以很好地查看为页面加载的所有 HTTP 资源。但每当加载新的顶级 HTML 页面时,它就会清除列表。这使得调试由于某种原因自动重新加载的页面(运行脚本或 300 个响应)变得非常困难。
我可以告诉 Chrome 在加载新的顶级页面时不要清除网络调试器吗?或者我可以回去看看上一页的网络资源吗?
或者,当我无法控制正在尝试调试的页面时,我是否可以强制 Chrome 在加载新页面之前暂停?这是 OpenID 舞蹈的一部分,但会出错,因此 SSL 和凭据的组合使得使用命令行工具进行调试变得极其困难。
这自 v32 以来已更改,感谢 @Daniel Alexiuc 和 @Thanatos 的评论。
当前(≥ v32)
在 DevTools 的“网络”选项卡顶部,有一个复选框可以打开“保留日志”功能。如果选中,网络日志会在页面加载时保留。
https://i.stack.imgur.com/cFuNP.png
左侧的小红点现在具有完全打开和关闭网络登录的目的。
旧版本
在旧版本的 Chrome(此处为 v21)中,“网络”选项卡的页脚中有一个可点击的小红点。
https://i.stack.imgur.com/tSUP0.png
如果您将鼠标悬停在它上面,它会告诉您,当它被激活时,它将“保留导航时的日志”。它信守诺言。
我不知道强制 Chrome 不清除网络调试器的方法,但这可能会完成您正在寻找的内容:
打开js控制台window.addEventListener("beforeunload", function() { debugger; }, false)
这将在加载新页面之前通过点击断点暂停 chrome。
在重定向到其他页面之前调试网络调用的另一个很好的解决方案是选择 beforeunload
事件断点
这样,您可以确保在将流重定向到另一个页面之前立即中断流,这样所有网络调用、网络数据和控制台日志仍然存在。
当您想要检查呼叫的响应时,此解决方案是最佳选择
https://i.stack.imgur.com/OxHxo.png
https://i.stack.imgur.com/CNGXB.png
load
事件,我们可以在开始处停止并轻松设置断点。谢谢!
只需更新@bfncs 答案
我认为在 Chrome 43 左右,行为发生了一些变化。您仍然需要启用 Preserve log 才能查看,但现在重定向显示在 Other 选项卡下,当加载的文档显示在 Doc 下时。
这总是让我感到困惑,因为我有很多网络请求并按 XHR、Doc、JS 等类型对其进行过滤。但是如果重定向,Doc 选项卡是空的,所以我不得不猜测。