1

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 コンストラクターでクラッシュが発生したと考えられます (いいえ、ブラウザーのポップアップ設定を行うためではありません)。どんな助けやアドバイスも大歓迎です!

4

1 に答える 1

0

コンソールの確認に関する robertc のヒントのおかげで、次のエラーが発生しました。

Uncaught Error: SECURITY_ERR: DOM Exception 18 

Google は私をこのトピックに導きました。これは基本的に、Web サーバー (私は wampserver を使用しました) で実行するように指示しており、これは私の場合に役立ちました。ありがとう!

于 2012-08-29T13:02:42.260 に答える