【问题标题】:<script type="worker-script"> doesn't get JavaScript syntax highlighting<script type="worker-script"> 无法突出显示 JavaScript 语法
【发布时间】:2022-01-06 18:20:29
【问题描述】:

为了同时处理两个函数,我在 JavaScript 中创建了一个 web worker,我在 Stack Overflow 上检查了几个不同的 answers,我发现它们都使用 &lt;script type="worker-script"&gt; 来定义我们想要的另一个函数同时处理。

但是,对我来说,在我的编程工具(我使用 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?

Image

更新:

我刚刚检查了另一个与我的问题相关的问题:How to run two operations at the same time using either web worker or event loop in javascript

我想如果你需要使用web worker,那么你必须选择一个脚本的内容,但我真的不知道。

【问题讨论】:

    标签: javascript sublimetext


    【解决方案1】:

    它没有突出显示 Javascript,因为您告诉编辑器 sn-p 不是 Javascript。这就是type 属性的用途——它定义了所使用的语言。也许你可以配置你的编辑器告诉它“worker-script”就像“Javascript”。

    【讨论】:

    • 我刚刚更新了图片。即使我使用了type='javascript/worker',我认为它应该告诉编辑器它是javascript,但代码仍然是白色的。如果我错了,请纠正我
    • @Sahil — JavaScript 类型为 test/javascriptapplication/javascriptmodule
    • 这里有一个 Catch-22。不寻常的type 的目的是让浏览器忽略该块。但是任何具有这种效果的东西也会告诉您的编辑器忽略该块。如果你不能重新配置编辑器,那么你就被它困住了。
    • @Quentin,你是对的,但我怎么能真正做到web worker。我昨天刚查了另一个Question,所有与web worker相关的答案都必须选择script的内容
    • @TimRoberts 但我怎么能选择脚本的内容。我认为使用web worker 的目的是让几个函数同时工作,我认为我有必要获取脚本的内容。你能给我一个我可以做到的方法吗?非常赞赏。一个与我的problem相关的问题
    猜你喜欢
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 2014-01-13
    • 2012-02-19
    • 2016-12-12
    • 2017-07-25
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多