【发布时间】: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