如何调试Web worker

Zac*_*y K 57 javascript html5 firebug google-chrome

我一直在使用HTML 5中的Web worker,并且正在寻找调试它们的方法.理想情况下像firebug或chrome调试器.有没有人对此有任何好的解决方案.无法访问控制台或DOM,它很难调试iffy代码

小智 56

Dev Channel版本的Chrome支持通过注入假工作者实现调试工作人员,该工作实现模拟使用工作者客户端页面中的iframe的工作人员.您需要导航到Scripts窗格并在右侧的Workers侧栏上勾选Debug复选框,然后重新加载页面.然后,工作脚本将出现在页面脚本列表中.但是这种模拟有一定的局限性 - 因为工作者脚本将在客户端页面线程中运行,所以工作程序中任何长时间运行的操作都将冻结浏览器UI.

  • 去```chrome:// inspect```似乎是最好的选择.它允许您为共享工作线程的运行时打开控制台. (7认同)

dar*_*hus 23

作为缺少console.log的快速解决方案,您可以使用 throw JSON.stringify({data:data})

  • 当然,这会因为throw而停止执行调试. (3认同)

use*_*809 17

WebWorker可以像普通网页一样进行调试.Chrome通过chrome:// inspect /#workers为WebWorkers提供调试开发工具.

找到所需的正在运行的webworker,然后单击"检查".将打开一个专门用于该webworker的单独的开发工具窗口.官方[说明] [2]值得检查.


zea*_*uss 11

在chrome调试器中,在脚本选项卡中,滚动到工作人员面板,然后选择启动时暂停..它将允许您调试工作人员,并插入断点..但您可以在不同的窗口中执行所有操作


Ash*_*wal 10

与Chrome v35一样

  • 加载您的页面并打开Chrome开发者工具.

  • 导航到" 来源"选项卡.

  • 选中" 暂停开始"复选框,如下所示:

    在Chrome开发工具中调试工作人员

  • 重新加载页面,调试器将暂停在Web工作者中,但在新窗口中!

编辑:在较新版本的Chrome(我使用的是v39)中,工作人员位于"线程"选项卡下,而不是拥有自己的"工作人员"选项卡(如果有任何正在运行的工作人员,则"线程"选项卡将变为可见).

  • 无法在chrome 38 ubuntu上找到它 (5认同)
  • 也找不到它.甚至没有一个名为"工人"的子面板. (2认同)

Phi*_*ßen 9

从Chrome 65开始,您现在可以简单地使用调试器的"步入"功能:

在此输入图像描述

有关更多详细信息,请参阅其发行说明.


小智 8

您可以使用 self.console.log('your debugging message')