だから私はこのメインのjsファイルを持っています:
var worker = new Worker("../Scripts/worker.js");
worker.onmessage = function (event) {
alert("Worker said : " + event.data);
};
worker.postMessage("Naruto");
worker.postMessage("Sakura");
そしてworker.jsはここにあります:
self.onmessage = function (event) {
self.postMessage("Hi " + event.data);
};
self.postMessage("WHERE'S SASUKE? [1]");
self.postMessage("WHERE'S SASUKE? [2]");
それらが実際にどのように機能するかについて、私はまだ少し混乱しています。しかし、出てくるのはこれです(登場順):
Worker said: WHERE'S SASUKE? [1]
Worker said: WHERE'S SASUKE? [2]
Worker said: Hi Naruto
Worker said: Hi Sakura
ワーカーを開始するには、postMesage() を使用すると彼らは言いました。
最初の質問: メインの js ファイルが postMessage("Naruto") の場合、なぜワーカーは最初に 2 つの "WHERE'S SASUKE?" を表示したのですか? そしてナルトとサクラを表示?メインスレッドからデータを受け取ったので、最初に onMessage イベントをトリガーすることになっていませんか?
2 番目の質問: Message("Naruto") を投稿すると、"WHERE'S SASUKE?" という 2 つのメッセージが表示されました。しかし、postMessage("Sakura") を実行すると、2 つの "WHERE'S SASUKE?" が表示されないのはなぜですか? つまり、メインスレッドで postMessage() を 2 回呼び出したのに、「WHERE'S SASUKE」が 2 つしか表示されないのはなぜですか? worker.js を 2 回も「実行」することになっているので、「WHERE'S SASUKE?」が 4 つ表示されるのではないでしょうか? (教えてください)