我是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中的单行,一切正常。
答案 0 :(得分:4)
附加到worker
的事件监听器会侦听从工作人员到父页面的消息。您还需要在worker 中注册一个监听器。
parent.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');
});