【发布时间】:2022-01-06 18:20:29
【问题描述】:
为了同时处理两个函数,我在 JavaScript 中创建了一个 web worker,我在 Stack Overflow 上检查了几个不同的 answers,我发现它们都使用 <script type="worker-script"> 来定义我们想要的另一个函数同时处理。
但是,对我来说,在我的编程工具(我使用 Sublime Text)上,语法高亮器不会解析它,只是将其保留为白色文本。如果是代码,它会根据不同的类型给出不同的颜色。
例子:
<!DOCTYPE html>
<script id="worker1" type="javascript/worker">
// This script won't be parsed by JS engines because its type is javascript/worker.
self.onmessage = function(e) {
self.postMessage('msg from worker');
};
// Rest of your worker code goes here.
</script>
<script>
var blob = new Blob([
document.querySelector('#worker1').textContent
], { type: "text/javascript" })
// Note: window.webkitURL.createObjectURL() in Chrome 10+.
var worker = new Worker(window.URL.createObjectURL(blob));
worker.onmessage = function(e) {
console.log("Received: " + e.data);
}
worker.postMessage("hello"); // Start the worker.
</script>
有人可以向我解释为什么这不起作用并给我更好的解决方案吗?
发件人:Web workers without a separate Javascript file?
更新:
我刚刚检查了另一个与我的问题相关的问题:How to run two operations at the same time using either web worker or event loop in javascript
我想如果你需要使用web worker,那么你必须选择一个脚本的内容,但我真的不知道。
【问题讨论】: