2016-10-01 20 views
-1

XmlHttpRequestを使用して行われたすべてのリクエストをアプリケーションに記録しようとしています。Webワーカーで使用するためのXmlHttpRequestプロトタイプの変更

私のアプリケーションでは、WebGLマップをレンダリングするためにTangramライブラリを使用しています。 Tangramは、Webワーカーを使用して、個別のスレッド上にマップを構築するためのデータを要求します。私は次のコードを持っている私のHTMLページの先頭に

<!-- Log XMLHttpRequest --> 
<script> 

    (function(open) { 

    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { 
     console.log(arguments); 
     return open.call(this, method, url, async, user, pass); 
    }; 
    })(XMLHttpRequest.prototype.open); 

</script> 

をこれが成功し、メインスレッドで行われたすべての要求をログに記録しますが、タングラムによりスピンアップワーカースレッド内何かをログに失敗しました。私がやろうとしていることを達成するために、(Tangramのソースコードを変更することなく)好きな方法がありますか?

注:XmlHttpRequestオブジェクトの機能をウェブワーカーで使用するために拡張しました。これは必ずしもログ用ではありません。私はちょうど例としてロギングを使用しました。

提供できるアドバイス/ガイダンスをお気軽にお寄せください。

strainy

+1

ワーカーとメインスレッドは、実際には同じインスタンスを共有していません。私は思っていますので、ネイティブオブジェクトは異なるインスタンスであると推測しています。 – adeneo

答えて

1

ウェブワーカーで同じコードを実行する必要があります。ワーカーは完全に異なるグローバルスコープで動作しています。メインスレッドで設定した変数はワーカーには影響しません。

メインスレッドとウェブワーカーの両方からリンクできるように、コードをファイルに入れることをお勧めします。

+0

提案していただきありがとうございます。私は、XmlHttpRequestsをハイジャックしてメッセージをメインスレッドにポストバックするために、TangramのWebワーカーにスクリプトをインポートする方法を考え出しました。 – Strainy

関連する問題