0

HTML5 Web ワーカーで問題が発生しています。Web ワーカー postMessage() は、onmessage() 関数に付属する、ワーカーを呼び出したドキュメント レベルの JavaScript に対する JSON オブジェクトです。

ワーカーが関連付けられた数値を処理できるため、明らかに「iterationsjob」キーにアクセスできますが、これは Google Chrome でのみ機能するようで、それでもエラーが発生します。

18Uncaught TypeError: Cannot read property 'iterationsjob' of null

Firefox では、Web ワーカーがまったく機能せず、番号にもアクセスできないようです。ajax 呼び出しは成功していますが、ログ記録の手順をバイパスし、別の ajax 呼び出しで別のエラーが発生するようです。 . そこで、ワーカーが log() メッセージをコンソールに返す基本的な方法をハックし、ワーカー内からそれらを呼び出しました。

var iterations
//get iteration data from the server
p.ajax.post({
    url:'/getdataurl',
    dataType: "json",
    success: function(responseText){
        log("test");
        log("responseText is "+responseText);
        iterations = responseText.iterationsjob; 
        log("iterations is "+iterations);         
    }
});

私は次のことを期待していました:

test
responseText is [object Object]
iterations is 3993547

代わりに、次のように表示されます。

test
responseText is [object Object]
iterations is 3993547
test
responseText is null
Uncaught TypeError: Cannot read property 'iterationsjob' of null

問題の内容と修正方法を説明できる人はいますか? 編集: ソース コードの zip をここにアップロードしました。Google App Engine で実行されます。

ありがとう!どんな助けでも大歓迎です。

4

1 に答える 1

0

ああ、2番目のajax呼び出しに空の成功コールバック関数を追加する必要があることがわかりました。なんらかの理由で、定義されていない場合、デフォルトで最初の成功コールバックを呼び出します。

于 2011-12-15T21:05:19.473 に答える