javascript - 页面加载之间的 javascript worker
问题描述
我有以下代码
w = new Worker('<?php echo base_url(); ?>'+"assets/js/web_worker.js");
w.postMessage({base_url:BASE_URL,site_url:SITE_URL});
这会在每个页面加载时运行,并且工作人员可能需要一段时间来运行任务。
- 如果我在启动后离开页面,worker 会继续运行吗?
- 无论是否完成,工作人员似乎都会开始每个页面加载。如何查看工人是否正在运行而不是启动另一个工人?
解决方案
- 如果我在启动后离开页面,worker 会继续运行吗?
不,一旦生成它的上下文被杀死,Worker 也会被杀死。
- 无论是否完成,工作人员似乎都会开始每个页面加载。如何查看工人是否正在运行而不是启动另一个工人?
确实,每次都会启动一个新的 Worker,但不会有另一个 Worker 运行。
也就是说,如果我们谈论敬业的工人。
如果其他页面在重新加载期间保持活动状态,则Shared-Worker 将在页面重新加载期间存活。
虽然这是一种误用,但 Service-Worker 肯定会存活下来。
实际上最好的方法可能是从 Service-Worker 启动 Shared-Worker,但我认为这仍然不可行,尽管进行了积极的讨论。
推荐阅读
- javascript - 2020 年 AJAX 最佳实践(成功与完成)
- android - 在干净架构的上下文中,用例和交互器意味着什么?
- linux - 在现代 Linux x86-64 中,用户空间覆盖 GS 寄存器是否安全?
- python - 了解 Pytorch 网格示例
- javascript - Invalid CORS request
- android - something problem on alertdialog flutter, you can help me?
- r - 如何在列表中命名数据框
- graph - What's a good pattern to manage impossible states in Elm?
- powershell - 如何使用 PAT 从本地 Azure Artifacts 存储库在 docker 容器中安装 powershell 模块?
- kubernetes - 如何在不创建 ConfigMap 的情况下将动态生成的文件挂载到 pod 中?