我一直在使用HTML 5中的Web worker,并且正在寻找调试它们的方法.理想情况下像firebug或chrome调试器.有没有人对此有任何好的解决方案.无法访问控制台或DOM,它很难调试iffy代码
Dev Channel版本的Chrome支持通过注入假工作者实现调试工作人员,该工作实现模拟使用工作者客户端页面中的iframe的工作人员.您需要导航到Scripts窗格并在右侧的Workers侧栏上勾选Debug复选框,然后重新加载页面.然后,工作脚本将出现在页面脚本列表中.但是这种模拟有一定的局限性 - 因为工作者脚本将在客户端页面线程中运行,所以工作程序中任何长时间运行的操作都将冻结浏览器UI.
作为缺少console.log的快速解决方案,您可以使用 throw JSON.stringify({data:data})
WebWorker可以像普通网页一样进行调试.Chrome通过chrome:// inspect /#workers为WebWorkers提供调试开发工具.
找到所需的正在运行的webworker,然后单击"检查".将打开一个专门用于该webworker的单独的开发工具窗口.官方[说明] [2]值得检查.
在chrome调试器中,在脚本选项卡中,滚动到工作人员面板,然后选择启动时暂停..它将允许您调试工作人员,并插入断点..但您可以在不同的窗口中执行所有操作
与Chrome v35一样
加载您的页面并打开Chrome开发者工具.
导航到" 来源"选项卡.
选中" 暂停开始"复选框,如下所示:
重新加载页面,调试器将暂停在Web工作者中,但在新窗口中!
编辑:在较新版本的Chrome(我使用的是v39)中,工作人员位于"线程"选项卡下,而不是拥有自己的"工作人员"选项卡(如果有任何正在运行的工作人员,则"线程"选项卡将变为可见).
从Chrome 65开始,您现在可以简单地使用调试器的"步入"功能:
有关更多详细信息,请参阅其发行说明.