我想知道当用户关闭产生工作线程的选项卡时,如果线程仍在工作,会发生什么情况。它会阻止一切吗?如果是这样,是否有办法在后台运行该线程,即使该选项卡已关闭?当标签在运行时关闭时,HTML5 Web工作线程会发生什么情况?
15
A
回答
11
是的,它停止了一切,一个(专用)工人无法活过它的主人。如果您使用可以拥有多个所有者的共享工作人员,那么只要至少有一个所有者在世,工作人员将只会保持活动状态。即使您将纠结的MessagePort
传递到另一个窗口(即消息端口的所有者为而非工作的所有者),情况也是如此。
因此,通过共享工作人员,您可以通过打开一个与工作人员建立自己连接的新窗口(使用new SharedWorker(...)
)“转移”所有权,然后关闭旧窗口。但一个窗口必须始终保持开放。
3
看看这里
http://www.whatwg.org/specs/web-apps/current-work/multipage/workers.html#workerglobalscope
我认为它确认,一旦浏览器消失,任何工人必须停止。
每当一个Document对象被丢弃,必须从每个工人,其列表包含 文件的工人的证件的 列表中删除。
如果您有一个使用网络工作者的窗口,并关闭该窗口(或选项卡),工作人员就会消失。
如果您有一个窗口,打开其他窗口或选项卡的情况下,工作人员可以继续。但是如果你关闭了所有的东西,它们都会消失。
相关问题
- 1. 当线程在设置锁定时关闭时会发生什么情况
- 2. 当tomcat关闭时,ExecutorService管理的线程会发生什么情况?
- 3. 当系统关机时,cron作业会发生什么情况?
- 4. 当executorservice关闭时,运行/阻塞的runnables会发生什么()
- 5. 当Android应用程序强行关闭时会发生什么
- 6. 当计算机意外关闭时,mysql数据会发生什么情况?
- 7. 当您在关闭body标签后放置javascript时会发生什么?
- 8. 关闭.NET控制台应用程序时会发生什么情况?
- 9. 我们在签名时会发生什么情况?
- 10. 当发生javascript运行时错误时会发生什么?
- 11. 窗户关闭时运行任务会发生什么?
- 12. 工作线程发布消息时,如果主线程忙,会发生什么情况?
- 13. 如果在SqlDataReader之前关闭SqlConnection,会发生什么情况?
- 14. 发生病情时会发生什么情况?
- 15. 发生IIS重置时,在Sharepoint 2010 WFE上运行的工作流会发生什么情况?
- 16. 如果我将工作发布到线程池并且线程已在boost工作,会发生什么情况?
- 17. 当用户按下“Home”按钮时,执行线程(主线程除外)会发生什么情况
- 18. 当数据库脱机时,symfony会发生什么情况?
- 19. 当禁用javascript时Stripe会发生什么情况
- 20. 当你JAR而不是WAR时,会发生什么情况
- 21. 当用户关闭浏览器等待长时间运行的Web服务调用时会发生什么?
- 22. 如果MySQL数据库未关闭,会发生什么情况?
- 23. 如果我在执行文件I/O操作时突然关闭脚本,会发生什么情况?
- 24. 当我取消发布Chrome扩展程序时会发生什么情况
- 25. 工作节点重新启动时正在运行的Sidekiq作业会发生什么情况?
- 26. 当你运行一个程序时会发生什么?
- 27. 当主窗口关闭时,SynchronizationContext会发生什么?
- 28. 当它被克隆时,关闭的delagate会发生什么?
- 29. 当MySQL连接未关闭时会发生什么?
- 30. 当公开测试再次关闭时会发生什么
为了澄清,由于讨论围绕新窗口进行,因此这也应该适用于新的页面加载。加载新页面会丢弃当前文档对象(web worker会消失),并在新文档加载时重新创建。 – ElHaix 2012-02-22 15:51:22