我以前使用过Worker 对象,它非常简单,尤其是在教程中。
因此,下一步自然是与 SharedWorkers 合作。我把它记下来了,但现在看来 SharedWorker 没有正确响应。我向 SharedWorker 发送了一个 postMessage,在我的代码中我让 SharedWorker 发回相同的文本,有点像回声效果。
不幸的是,SharedWorker 只返回从主程序发送的消息的第一个字母,并且不会将“Background”字符串记录到控制台以让我知道 SharedWorker 正在运行。“安装完成”日志消息也证明 SharedWorker 已创建。
代码...
主要的 HTML 文件...
<html>
<head>
<title>Test</title>
</head>
<body>
<script>
var w = new SharedWorker('sharedworker.js');
w.port.start();
w.port.postMessage("start");
w.port.onmessage = function(e){
console.log(e.data);
};
console.log("Setup complete.");
</script>
</body>
</html>
SharedWorker 脚本...
onconnect = function(e){
var port = e.ports[0];
port.addEventListener('message', function(e){
port.postMessage(e.data[0]);
});
port.start();
console.log("Background.");
}
我究竟做错了什么?