当您处于无限循环或递归调用中时,基本上浏览器会停止响应任何内容(在 Chrome 或 FF 上)。您看不到日志,无法进入调试器,甚至无法打开控制台本身。浏览器只是简单地冻结。这太烦人了。看来我只能坐在这里挠头……任何人都可以阐明如何解决这个问题?
问问题
28912 次
3 回答
78
您可以尝试的另一个技巧是打开 Chrome 中的 Web 开发人员工具,并在浏览器明显挂起时尝试点击暂停。然后它应该在当前执行的行处中断。通过一些步骤,您应该了解这一点。
假设您知道(或怀疑)发生无限循环的函数,您可以添加如下代码:
var calls = 0;
function iSuspectToBeLoopingInfititely() {
calls += 1;
if (calls > 100) { debugger; }
}
一旦方法被调用 100 次,这将停止 Chrome 中的 JavaScript 调试器。debugger;
注意:如果您确实打开了“开发者工具”窗口,Chrome 只会因调用而中断。
于 2012-10-10T09:19:15.460 回答
1
我在 Chrome 中遇到了问题,我会在浏览器窗口中看到“在调试器中暂停”,但看不到 Chrome 可能在哪里混淆了,因为它处于循环中......在 Firefox 中,它认识到它花费的时间太长,然后弹出窗口在 30 秒到 1 分钟后出现,说明文件和总行 # 它已冻结,这有助于进一步调试并在该区域周围设置断点。
于 2016-02-22T14:45:29.280 回答