如何从外部停止webworker中的Javascript?

时间:2015-03-21 09:12:08

标签: javascript web-worker

我通过我的网页上的onclick事件调用javascript函数,该事件将在我的webworker中同步开始运行。所以我想知道在通过onclick事件获得所需结果之后是否有任何方法可以阻止js函数,即从我的网页手动获取。

// ---纯Javascript解决方案请.--- //

1 个答案:

答案 0 :(得分:1)

  

所以我想知道在获得所需结果后是否有任何方法可以阻止js函数...

如果您有所需的结果,则网络工作者不应该仍在运行。它应该在将结果发送到主页面后终止(或休眠)。它可能仍然注册了message处理程序(因此您可以告诉它再做一些事情),但它不应该正在运行

  

如何从外部阻止webworker中的Javascript?

如果Web工作者持续运行代码,例如一个永远不会返回浏览器的紧密循环,您可以通过Worker实例上的terminate method终止它:

你启动工人的地方:

var worker = new Worker("yourscript.js");

稍后,当你想要杀死它时:

worker.terminate();

如果工作人员定期(通过setTimeout)返回浏览器,或者只是因为它正在等待message下一个要处理的事情,那么你可以发布一个特定于应用程序的消息,告诉它清理和终止。