javascript - console.log 卡住 javascript 控制台

标签 javascript google-chrome logging console

我在本地使用 chrome 浏览器运行一个 html5 canvas 网页。出于调试目的,我正在使用 console.log 尝试跟踪每秒发生 60 帧的动画中的对象像素位置。但问题是,当我运行该网页时,它工作正常,直到我打开 javascript 控制台并看到我的位置被打印得如此之快以至于开发控制台卡住了,该页面仍在运行,但我无法像开关一样进行任何调试在控制台等的不同选项卡之间,我必须关闭页面并重新启动它,问题很快再次发生。

我还使用内置工具执行 javascript CPU 配置文件收集,以查看它在日志记录上花费了多少资源,事实证明它只占运行时间的 0.01%,这显然不应该是问题,但我的猜测是即使它只花费很少的时间来执行此操作,实际上忙于更新 UI 上的数字的控制台也是卡住页面的原因。 (我应该提一下,我仍然可以很好地与页面交互,但我不能对控制台做任何事情,即使只是关闭它)

这在 chrome 浏览器上正常吗?任何修复或建议?谢谢

最佳答案

是的,我会避免向控制台发送垃圾邮件。根据我的经验,您可以记录数量惊人的数据,例如包含数万个项目的数组,但您不能过于频繁调用日志函数,否则开发工具会在调用时卡住重绘。

因此,考虑到上述情况,我建议将多个日志调用分组到一个对象或数组中。例如,如果您有一个将运行很多次的循环并且内部有 5-6 个日志调用,请通过将数据添加到数组或具有井名键的对象来将这些日志调用分组在一起,并将该对象记录在循环结束。

如果您必须每 100 毫秒记录一次以上并持续几秒钟以上,我建议将日志调用分组。

关于javascript - console.log 卡住 javascript 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11592660/

相关文章:

JavaScript 一段代码解释

javascript - 如何使用 meteor 进行 API 调用

html - Chrome 内联 block 不起作用

google-chrome - 在谷歌浏览器上播放 m3u8 视频

java - 包含 View 对象标签的表

ios - 在 iOS 应用程序中创建日志文件

javascript - 使用 meteor.js 选择时突出显示输入框

javascript - 将字符串作为 URL 参数传递给 Url.Action 不起作用

jquery - 带有响应式导航菜单的 Chrome 错误

logging - 哪个最好 : First Log then do the Operation OR First do the Operation then Log it?