如何在浏览器中调试内存泄漏、无限循环和执行Javascript?
在浏览器中检查javascript中无限循环的推荐方法是什么?假设我打开了Chrome,它崩溃了,有没有办法找到断点或以某种方式找到发生故障的地方 然后我想知道,我如何在浏览器中看到一个正在运行的脚本列表(比如说,我忘记了某个计时器正在运行,它正在减慢速度)?最好使用Chrome/Safari,但Firefox也可以 我一直在使用element inspector/控制台,只是还没有找到有效调试这三件事的方法 谢谢 一,。内存泄漏如何在浏览器中调试内存泄漏、无限循环和执行Javascript?,javascript,debugging,Javascript,Debugging,在浏览器中检查javascript中无限循环的推荐方法是什么?假设我打开了Chrome,它崩溃了,有没有办法找到断点或以某种方式找到发生故障的地方 然后我想知道,我如何在浏览器中看到一个正在运行的脚本列表(比如说,我忘记了某个计时器正在运行,它正在减慢速度)?最好使用Chrome/Safari,但Firefox也可以 我一直在使用element inspector/控制台,只是还没有找到有效调试这三件事的方法 谢谢 一,。内存泄漏 (即) (即) (FF) 2.有限环 我不太明白在复杂的无限
- (即)
- (即)
- (FF)
_setTimeout = setTimeout
setTimeout = function(fn, time) {
var timeout = _setTimeout(function() {
console.log('Timeout #' + timeout + ' fired on ' + (fn.name || 'anonymous'))
fn()
}, time)
return timeout
}
通常我只是在触发超时/间隔时使document.title闪烁
4.通用代码性能
- 谷歌浏览器
- 对于Firefox
- -一个小信息框,可帮助您监控FPS和内存分配
如果在“非线程”JS中有一个无限循环,那么页面将根本无法完全加载。Firefox应该告诉您加载脚本需要很长时间,并让您调试它(这会告诉您它在哪里)。对于“线程化”JS(通过回调或setTimeout运行的JS),您可以使用探查器跟踪它们 +1用于覆盖
setTimeout
。如果将console.log
更改为console.error
,那么每次调用都会得到堆栈跟踪!假设您的浏览器(就像Chrome一样)可以跨异步调用跟踪堆栈。