首页 > 解决方案 > 页面加载之间的 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. 如果我在启动后离开页面,worker 会继续运行吗?
  2. 无论是否完成,工作人员似乎都会开始每个页面加载。如何查看工人是否正在运行而不是启动另一个工人?

标签: javascriptweb-workerworker

解决方案


  1. 如果我在启动后离开页面,worker 会继续运行吗?

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

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

确实,每次都会启动一个新的 Worker,但不会有另一个 Worker 运行。


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

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

虽然这是一种误用,但 Service-Worker 肯定会存活下来。

实际上最好的方法可能是从 Service-Worker 启动 Shared-Worker,但我认为这仍然不可行,尽管进行了积极的讨论


推荐阅读