2

一般来说,我是 Javascript 和网络编程的新手。我正在尝试找出网络工作者,并拥有以下代码(在 chrome 中运行):

worker_example.html

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="worker_example.js"></script>
    </head>
<html>

worker_example.js

var worker = new Worker("worker.js");

worker.addEventListener('message', function(e) {
    document.write("hello");
}, false);

worker.postMessage("");

worker.js

// self.postMessage("");

我的问题是为什么不worker.postMessage("")触发事件?但是,如果我取消注释 worker.js 中的单行,一切正常。

4

1 回答 1

4

附加到的事件侦听器worker侦听工作人员父页面的消息。您还需要在工作人员中注册一个侦听器。

父.js

var worker = new Worker('worker.js');

worker.addEventListener('message', function (e) {
  console.log(e.data);
});

worker.postMessage('marco');

worker.js

self.addEventListener('message', function (e) {
  self.postMessage(e.data + ' polo');
});
于 2013-01-14T23:43:58.900 回答