Catch/Prevent 遇到断点时页面变化:Firefox

Catch/Prevent Page Change When Hitting Breakpoint: Firefox

我遇到一个问题,在使用 Firefox 时,AJAX 未完成的请求触发了我的全局错误处理程序捕获的某种错误。

结果是,在页面更改前的一瞬间,会出现一个警告 "we had trouble communicating with the server"。这是无害的,因为页面正在更改,但它很烦人,我想确定消息是什么并在 Firefox 中避免它。

由于该问题仅在 Firefox 中止这些正在运行的 AJAX 请求时出现,因此我需要在浏览器重新加载新页面之前中断该页面。

我使用的是 Firefox 66.0.3。

根据Mozilla's webdocs, it is not yet possible to break on a DOM event in the "new debugger", like it is in Chrome devtools

我有可以附加断点的错误处理代码。不幸的是,任何断点(或 debugger 语句)都不会 阻止 页面发生变化,因此我无法实际调试。

有什么方法可以让断点 页面更改之前捕获,以便我可以调查 stack/console?

所以这不是 "perfect" 解决方案,而是 "a" 解决方案。

为了找到调试所需的必要信息,我所做的是将日志保存在控制台中。

然后我修改了我们的脚本以将各种变量 and/or 堆栈记录到控制台,以便我可以调试请求的状态和导致问题出现的浏览器。

就其价值而言,发生的事情是当用户从页面导航时关闭 AJAX 请求,在 Firefox 中 jQuery ajaxError handler is called, and the statusText 参数设置为 "error" .

为了防止处理程序抛出错误的 "error communicating with the server" 弹出窗口,我检查请求的 status 是否仍然设置为 0 (unsent/loading)。

不,我不确定为什么 Chrome 不会触发 ajax 错误处理程序,但 Firefox 会。