1

次のコードがあります。

var stressWorker = new Worker("./test/webworkers/worker.js");
stressWorker.onmessage = function(event){
    alert(event.data);
};
stressWorker.onerror = function(event){
    throw new Error(event.message + " (" + event.filename + ":" + event.lineno + ")");
};

worker.js:

onmessage = function(e){
   postMessage("test");
}

スクリプトは「worker.js」ファイルを見つけますが、実際には実行しません。私は何を間違っていますか?

PS。wampを使用して両方のスクリプトをホストしており、chromeを使用しています

4

3 に答える 3

1

worker.js は、メッセージを受信するまで何もしません。メッセージの送信先がわかりません。stressWorker.postMessage(...)どこかのようなものが必要です。

于 2011-06-05T16:09:53.897 に答える
0

覚えておくべき 1 つの主なこと 同じオリジンでスクリプトを実行し、クロムを使用している場合は、フラグ--allow-file-access-from-filesまたは You should run app on local serverでクロムを開始する必要があります。

コードを見る

 var stressWorker = new Worker("../test/webworkers/worker.js");
    stressWorker.onmessage = function(event){
        alert(event.data);
    };
    stressWorker.postMessage("Hello there");
    stressWorker.onerror = function(event){
        throw new Error(event.message + " (" + event.filename + ":" + event.lineno + ")");
    };

これで、ワーカーからの応答が得られます。".." パスが間違っていると思われます。

于 2012-08-06T08:46:50.470 に答える
0

お使いのブラウザがこの特定の HTML5 機能をサポートしていますか?

この記事には、各機能のサポートをテストする多くの方法があります。ワーカーのテストは

return !!window.Worker;

編集:私が見たように、コードに問題があるか、ファイルが見つかりません。あなたのコードは、.js ファイルのコードが次のようなものであることを除いて、この例によく似ていselfます。

self.onmessage = function(e) {  
    self.postMessage("Hello " + e.data);  
};  

それを試してみて、ここに欠けている部分がないかどうかを確認するのは簡単です。

于 2011-06-05T14:58:56.113 に答える