为啥 firebug 在调试时会改变网站的行为?

Posted

技术标签:

【中文标题】为啥 firebug 在调试时会改变网站的行为?【英文标题】:Why does firebug change the behavior of a website when debugging?为什么 firebug 在调试时会改变网站的行为? 【发布时间】:2012-04-07 11:17:49 【问题描述】:

我正在开发一个使用 Extjs 的网站,我正在使用 Firefox 中的 firebug 进行调试。我注意到,当我在 firebug 的断点处停止然后几秒钟后再次开始执行时,有时网站上发生的事情会停止发生。例如,如果单击一个按钮导致 A 发生导致 B 导致 C 并且我的断点位于 A 上,那么如果我在断点处停止,则 B 和 C 可能根本不会发生。

我目前最好的猜测是,当这样的事情发生时(在很多不同的场景中经常发生这种情况),这是因为操作已设置为超时,并且当我在断点处停止时它们会这样做。

为什么会这样?

我能做些什么来防止这种情况发生吗?

【问题讨论】:

请注意科学原理,即测量现象会以某种方式影响结果 Web Inspector 中的 Safari 或 Chrome 是否会发生同样的情况? 【参考方案1】:

我能想到的一件事是异步事件和 onComplete 处理程序,例如来自断点可能会或可能不会实际暂停的动画/补间。或者如果有后台 XHR 请求,我不确定断点是如何处理的。

我认为@kevinDTimm 是指物理学中的观察者效应:http://en.wikipedia.org/wiki/Observer_effect_%28physics%29

【讨论】:

以上是关于为啥 firebug 在调试时会改变网站的行为?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在通过 as.character() 将列表强制为字符时会出现这种行为?

为啥 Dash 在通过 PyCharm 调试时会抛出 TypeError? [关闭]

与 Vec 相比,为啥 SmallVec 在存储具有生命周期的类型时会有不同的行为?

为啥传递给函数的协议默认值不会改变,即使函数在子类化时会改变?

为啥 React 在直接改变状态时会更新?

为啥 Visual Studio 在调试时会以不同的方式处理 ANSI Escape 代码?