正常通信,這是非常簡單的,特別是與教程。的Javascript SharedWorker沒有與我同<a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers" rel="nofollow noreferrer">Worker objects before</a>工作的主要程序
所以很自然的下一步將是work with SharedWorkers。我已經明白了,但現在看來SharedWorker沒有正確響應。我發的postMessage到SharedWorker,並在我的代碼我有SharedWorker回發相同的文字,有點像回聲效果。
不幸的是,SharedWorker只返回主程序發送消息的第一個字母,而不會記錄到控制檯的「背景」的字符串,讓我知道了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.");
}
我在做什麼錯?
這就是門票! port.postMessage(e.data [0]);如果要傳遞的陣列,如w.port.postMessage被使用([DATA1,DATA2])。 –