【问题标题】:Firebug Error: setInterval() Callbacks Cease after Continue from BreakpointFirebug 错误:从断点继续后 setInterval() 回调停止
【发布时间】:2012-03-29 10:03:40
【问题描述】:

我偶然发现了 Firebug 中的一个显示停止器故障,如果在 JavaScript 回调方法中遇到断点,并且随后继续执行 [F8],则之前传递给 setTimeout() 或 setInterval() 的任何回调函数将不再被调用。

早在 2010 年 3 月,负责 Firebug 开发的任何人都曾向该错误报告过此错误。您可以在此处阅读官方案例:

http://code.google.com/p/fbug/issues/detail?id=2894

我假设由于问题在一年后仍未解决,因此很可能永远无法解决。所以我的问题是:你知道这个 Firebug 故障的任何聪明的解决方法吗?除了重新启动 Firefox 和/或重新加载页面之外,是否有一些复杂的方法可以让计时器事件再次触发?

更新:

澄清一下:为了触发故障,断点必须位于程序中的任意行、任意事件回调、程序中的任意位置,setInterval()/setTimeout() 回调本身中的除外。

【问题讨论】:

  • 您链接到的错误页面没有提到setTimeout;如果您确定setTimeout 受到影响,我认为您应该在那里发表评论。此外,我认为“由于问题在一年后仍未解决,它可能永远不会得到解决”,我认为这是不合理的(尽管在此期间显然一种解决方法可能有用)。
  • 嗨。错误页面提供了一个关于动画和处理点击的非常具体的案例。提交该错误报告的人可能没有意识到该错误可以推广到所有 setInterval()/setTimeout 调用,而不仅仅是那些涉及动画的调用。我恭敬地不同意第二点。如果一年后没有修复(甚至解决!)一个主要的显示停止错误,它可能不会得到修复。并不是任何人疏忽大意。在合理的时间范围内修复它可能太难了。感谢您的回复。
  • ruakh 是对的。即使该错误尚未修复,也不意味着它永远不会被修复。 Firebug 目前正在向new debugger API 发展,这将允许解决此错误。

标签: javascript firebug setinterval


【解决方案1】:

Firebug 1.12.6 修复了问题 1830(与 2894 重复)

https://blog.getfirebug.com/2014/01/20/firebug-1-12-6/

现在,当 Firebug 的调试器暂停时,所有运行超时(和间隔)都会暂停。您可以在此处使用在线测试用例(和 Firebug 1.12.6)检查此行为:

https://getfirebug.com/tests/manual/issues/1830/firebug-async-breakpoint.htm

洪萨

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 2017-07-29
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多