0

Scripts フォルダーに Worker.js ファイルと Subworker.js ファイルがあります。ワーカーの作成に問題はありません。デバッガーでそのコードをステップ実行できます。しかし、そのワーカーにサブワーカーを生成させたい場合、それが作成されず、デバッガーでサブワーカー コード ファイルをステップ実行できません。

In myPage.htm script block:
var worker = new Worker("Scripts/Worker.js");   // Succeeds

In Worker.js script file:
var subworker = new Worker("Subworker.js");   //without the folder name  FAILS

IE10 開発者ツールのネットワーク コンソールには、次のように表示されます。

URL....................Method...Result..Type.......................Received.......Taken......Initiator
/Scripts/Worker.js.....GET......200.....application/x-javascript...1.00KB..........<1ms......webworker
/Scripts/Subworker.js..GET......404.....text/html..................2.50KB..........239.29s...webworker

編集: サブワーカーをインスタンス化できませんが、404 エラーへの回答が見つかりました:

         var subworker = new Worker("..Subworker.js");

EDIT2:現在のバージョンのスクリプトを使用する次のトリックが400エラーを生成することもわかりました:

         var subworker = new Worker("..Subworker.js?version=2.0");
4

1 に答える 1

0

私はほぼ同じ船に乗っています。

file://私の計画は、通常の js スクリプトからサブワーカーを直接ロードできないため、別のドメインまたはプロトコルからサブワーカーをロードすることです。まだこれをテストする必要がありますがWorkers/SharedWorkers、通常のCross-Origin Restriction Policyの対象にならないことはわかっています。 ただし、ロードしようとしている場合を除きます (できれば、windowスクリプトからこれを実行する場合のみ)。

もう 1 つの方法は、別window.postMessageの で作成した Worker にメッセージを転送するために使用することwindowです。

あるいは、私の特定のニーズのために、ヘッドレス ブラウザ、CDN、または有効なlocalhost「永久サーバー」をローカルで実行することを検討していますが、これには..CORSwindow.postMessage()

これがお役に立てば幸いです、ティム!

答えが見つかったら投稿してくださいね。

于 2013-08-15T00:03:24.543 に答える