2016-11-11 20 views
-2

WebWorkerでいくつかの操作を実行したいオブジェクト、Three.jsで作成されたメッシュ上に配列があります。だから、質問はどのように私は労働者にそれらを投稿するのですか?JavaScriptを使用してWebWorkerにThree.jsメッシュを投稿する

ArrayBufferというものを使用する転送可能オブジェクトと呼ばれるものがありますが、オブジェクトの配列をそれに変換する方法についての情報はありません。またはこれはおそらく不可能ですか?

+0

読むMDNの記事トピック、彼らはかなり明確です。あなたは、transferableとArrayBufferが何であるかは分かりません。 MDNはあなたの不確実性を解消します。 –

答えて

1

オブジェクトがすでにバイナリバッファ形式でない限り、その形式に変換して戻すことでパフォーマンス上のメリットはありません。なんらかの理由で、これはほとんどのWeb Socketユーザーが理解できないものです - このような質問は常に尋ねられます。私の答えはいつも同じです - あなたの懸念は、性能であれば、何も変換しません。

worker.postMessage(:

は単なる古き良き 'を使用しますmyArray);

あなたには、いくつかの理由で、私はこの回答でインタラクティブなスニペットを使って自分の主張を事実は、チェックして自由に感じる、パフォーマンスについて間違っていると思われる場合:上の

+0

ありがとう!私は、私のメッシュを作業者のメッシュオブジェクトを再生成するJSON構造に変換します。 – arpo

+0

@arpo変換しないでください。ブラウザはそれを処理させて、それは大丈夫です。あなたの配列を 'postMessage'に直接置くだけで、ワーカーはそれを受け取ります。 –

+0

それが私が最初に試したことでした。それは私にこのエラーを与える: "Uncaught DOMException: 'Worker'の 'postMessage'を実行できませんでした:オブジェクトを複製できませんでした。 – arpo

関連する問題