TKo*_*KoL 3 javascript html5 web-worker
我有一个使用网络工作者清理indexedDB数据库的应用程序。我已经设置好它,因此可以从全局函数调用中启动它,如果该函数在完成之前再次被调用,它不会重新启动,但是如果函数完成后被调用,它会通过创建一个新实例而重新启动。工人。这一切对我来说都很好。
完成工作后,我是否需要从某种意义上删除,销毁或终止工作程序的旧实例?
完成工作后,我是否需要从某种意义上删除,销毁或终止工作程序的旧实例?
在正常情况下,工作程序会注册一个事件处理程序以侦听来自主脚本的消息,因此,是的,如果要卸载该工作程序,则需要告诉它取消注册。您可以通过以下两种方式之一进行操作:
Worker#terminate,它会立即终止工作程序,而没有任何机会完成工作。如果工作人员没有在听消息,没有注册其他事件处理程序并且没有在循环中进行工作,则您无需执行任何特定的操作(但几率很低,工作人员几乎总是注册事件处理程序以监听消息)。
...但是,如果函数完成后被调用,则它会通过创建worker的新实例而重新启动。
我建议重新访问该设计。相反,创建一次 worker ,然后在每次需要它执行某件事时向其发送一条消息,而不是每次都重新创建整个事情。
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |