私の Web アプリでは、古い既存のオブジェクトに新しいスクリプトを渡す方法がないため、Worker オブジェクトを常に再インスタンス化する必要があります。しばらくすると、一部のブラウザーは新しい Worker オブジェクトの作成をブロックし始めます。これは、1 つのウィンドウの Worker の制限に達したためです。新しいワーカー オブジェクトを作成する前に、完成したワーカー オブジェクトを削除しようとしましたが、どうやらやり方が間違っているようです。Opera で失敗する簡単なテストを次に示します (ウィンドウあたりのワーカー数の上限は 256 です)。
var worker;
for(var i = 0; i < 300; i++) {
for (var key in worker) worker[key] = null;
delete worker.onmessage;
delete worker.onerror;
delete worker;
worker = new Worker("script.js");
}
私の質問は、ワーカー オブジェクトを完全に削除して、ブラウザーの制限に達することがないようにする方法です。ありがとうございました!