当您处于无限循环或递归调用中时,基本上浏览器会停止响应任何内容(无论是在 Chrome 上还是在 FF 上)。您看不到日志,无法进入调试器,甚至无法打开控制台本身。浏览器只是冻结了。这太烦人了。看来我什么也做不了,只能坐在这里挠头……任何人都可以阐明如何解决这个问题吗?
您可以尝试的另一个技巧是打开 Chrome 中的 Web 开发人员工具,并在浏览器明显挂起时尝试点击“暂停”。然后它应该在当前执行的行处中断。通过一些走出去,你应该能弄清楚这件事的真相。 假设您知道(或怀疑)发生无限循环的函数,您可以添加如下代码:
var calls = 0;
function iSuspectToBeLoopingInfititely() {
calls += 1;
if (calls > 100) { debugger; }
}
一旦该方法被调用 100 次,这将停止 Chrome 中的 JavaScript 调试器。 注意:如果您确实打开了开发人员工具窗口,Chrome 只会因
debugger;
调用而中断。