js文件之间通信

53 阅读1分钟

示例一:

worker.js

postMessage("Hello World");

worker.html

<script>
    const myWorker = new Worker("/worker.js");
    myWorker.addEventListener("message", (e) => {
        console.log(e.data, "对象");
    });
</script>

示例二:

worker.js

var i = 0;
function timedCount() {
  i += 1;
  postMessage(i);
  if (i < 5) {
    setTimeout("timedCount()", 1000);
  }

timedCount();

worker.html

<p>计数: <output id="result"></output></p>
<button onclick="startWorker()">开始工作</button>
<button onclick="stopWorker()">停止工作</button>
<script>
  var w;
  function startWorker() {
    if (typeof w == "undefined") {
      w = new Worker("/worker.js");
    }
    w.onmessage = (event) => {
      console.log(event, "event");
      document.getElementById("result").innerHTML = event.data;
    };
  }
  function stopWorker() {
    w.terminate();
    w = undefined;
  }
</script>