页面加载之间的javascript worker

问题描述

我有以下代码

w = new Worker('<?PHP echo base_url(); ?>'+"assets/js/web_worker.js");
w.postMessage({base_url:BASE_URL,site_url:SITE_URL});

此操作在每次页面加载时运行,工作人员可能需要一段时间才能运行任务。

  1. 如果我在启动页面后离开页面,该工作人员是否将继续运行?
  2. 似乎工作人员将启动每个页面加载,无论是否完成。如何查看该工作程序是否正在运行而不启动另一个工作程序?

解决方法

  1. 如果我在启动页面后离开页面,该工作人员是否将继续运行?

不,一旦杀死生成它的上下文,工人也被杀死。

  1. 似乎工作人员将启动每个页面加载,无论是否完成。如何查看该工作程序是否正在运行而不启动另一个工作程序?

实际上,每次都会启动一个新的Worker,但是不会再有另一个Worker在运行。


也就是说,如果我们谈论敬业的工人。

如果页面在重新加载期间保持活动状态,则Shared-Worker可以在页面重新加载后存活。

尽管那将是一种滥用,但服务工作者肯定会幸存下来。

实际上,最好的办法是从服务工作者开始共享工作者,但是尽管active discussions,我认为这仍然行不通。