私はここで頭がいっぱいです。window
Web ワーカーがオブジェクトにアクセスできないことを知って、これを行う方法はありますか? 助けてください!
2 に答える
これを行う方法はありません。Crypto クラスとメソッドは「ネイティブ コード」であり、ブラウザーの下位レベルで実装されているため、コードを抽出して別の場所に移動することはできません。Chrome の Transferrable Objectsオブジェクトを使用してみましたが、現在のコンテキストから消去されてワーカーに渡されますが、エラーがスローされます。暗号 API を DOM に結合する必要はないと思います (スレッドセーフではないため、WebWorkers は DOM に触れません) が、以前に暗号を実装したことはありません。Node には非同期 API があるので、少なくとも私にはスレッドセーフであるべきだと思われます。
http://cl.ly/image/0r0P3m3D2h07 <-検査window.crypto
http://cl.ly/image/0G1G0F1Y0d3Z <- 暗号を WebWorker スローに渡すサンプル コード。
私は WebWorker スクリプトを作成して、Chrome と Firefox の実装が異なることを確認しました。残念ながら、私は間違っていました。
私はW3C Web Crypto API Proposalの作成者に電子メールを送信しました。あなたも送信する必要があります。ドラフトには現時点で未解決の問題がいくつかあるようですので、変更される可能性があります。非同期 API を使用するか、crypto
Web Workers で API を使用できるようにすることは、私にとって完全に合理的だと思われます。メインイベントループをブロックするのは悪いことのようです。