在一个简单的 HTML5 web worker 项目中,我定义了一个使用 HTML5 消息 API 交换消息的 web worker。由于我们已经定义了两个 .onmessage 处理程序(回调函数),一个在主脚本中,另一个在 worker.js: index.html 中,因此我在这里感到困惑:
<!DOCTYPE html>
<html>
<body>
<script>
var worker = new Worker("worker.js");
worker.onmessage = function(event) {
alert("Reply from index.html:"+event.data);
}
worker.postMessage("message 3,");
</script>
</body>
</html>
工人.js:
this.onmessage = function(event) {
postMessage("message 0,"+event.data);
}
postMessage("message 1,");
我不明白的一件事是显示消息的顺序!它首先显示这个: 然后显示这个
但为什么?我很困惑如何以及何时调用这些处理程序?首先是worker.postMessage("message 3,"); 触发 worker.postMessage("message 3,"); 在 worker.js 和 postMessage("message 0,"+event.data); in return 触发主脚本中的 worker.onmessage = function(event) !然后在最后 postMessage("message 1,"); 从worker.js 触发主脚本(index.html)的onmessage。我们可以说我们对一个worker的任何postMessage调用都会触发其他webworker的onmessage函数吗?