我正在使用网络工作者来执行一些 CPU 密集型工作,但要求工作者将在工作者仍在处理时响应来自父脚本的消息。
但是,工作人员在被锁定在处理循环中时不会响应消息,而且我还没有找到一种方法来轮询消息队列。因此,似乎唯一的解决方案是每隔一段时间中断处理以允许处理队列中的任何消息。
显而易见的选择是使用计时器(比如使用 setInterval)但是我已经读到两次触发之间的最小延迟很长(http://ajaxian.com/archives/settimeout-delay),这是不幸的,因为它会减慢处理速度很多。
其他人对此有何看法?我将尝试让工作人员onmessage
在 each 结束时将其分派给自己onmessage
,从而有效地执行每个从自身收到的事件的处理循环的一个步骤,但只是想看看是否有人对此有任何想法。
谢谢,