2016-12-06 11 views
0

これはロングショットかもしれないが、おそらく誰かが助けるかもしれないことは分かっている。Javascript非同期バッファコピー

バッファを非同期でコピーする方法はありますか?どういうわけかブロブを使用している可能性はありますか?以下は私が探しているもののラインに沿ったものの一例です(明らかにうまくいきません)。クライアント側で作業するために必要です。

var fromBuffer = new Uint8Array(1056); //just some random data 
var bufferToCopyTo; 
var req = new XMLHttpRequest(); 
req.open("GET", "fromBuffer", true); 
req.responseType = "blob"; 

req.onload = function(e) { 
    bufferToCopyTo = req.response; 

}; 

req.send(); 
//continue while buffer makes a copy in the background? 
+0

正確に何が必要ですか? – Bergi

+0

クライアント側マルチスレッドの場合。コードのシリアル部分が実行されている間、バッファをコピーしてバックグラウンドでワーカーに渡そうとしています。そのビデオデコーダのため – brianxautumn

+1

私は構造化されたクローニングアルゴリズムを使用する['postMessage'](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage)とフレンドを調べます。 – Bergi

答えて

1

私は非同期バッファをコピーできます方法はありますか?

いいえ、他のコードが実行されている間にバッファをコピーすることはできません。そうしないと、バッファの要素にアクセス/書き込みするための競合状態が発生する可能性があります。

しかし、コピーに異常な時間がかかり、チャンクが役に立たない場合は、transferバッファにバックグラウンドワーカーを置いてそこにコピーしてからメインスレッドこれはもちろん、バッファがコピーされている間は使用できないことを意味します。

+0

私はあなたが正しいことを恐れている:(それはショットの価値があった。 – brianxautumn

関連する問題