HTML5 Web Worker について調査しています。「通常の」ワーカーは正常に動作しましたが、SharedWorker を初期化できないようです。Chrome と Firefox の最新バージョンで試しましたが、成功しませんでした... オンライン デモを実行しても、出力が得られません。
たとえば、次のドキュメントを開くと:
index.html:
<!DOCTYPE html>
<html>
<head>
<title>Web workers</title>
</head>
<body>
<p id="log">Log:</p>
<script>
alert("alert 1");
var worker = new SharedWorker("task.js");
alert("alert 2");
var log = document.getElementById("log");
worker.port.addEventListener("message", function(e){
log.textContent += "\n" + e.data;
}, false);
worker.port.start();
worker.port.postMessage("ping");
</script>
</body>
</html>
task.js:
onconnect = function(e) {
var port = e.ports[0];
port.postMessage("Hello World");
port.onmessage = function(e) {
port.postMessage("pong");
}
}
デバッグ用に 2 つのアラート関数を追加しました。「アラート 1」は常に表示され、「アラート 2」は表示されないため、SharedWorker コンストラクターでクラッシュが発生したと考えられます (いいえ、ブラウザーのポップアップ設定を行うためではありません)。どんな助けやアドバイスも大歓迎です!