Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5WebWorker逻辑流_Javascript_Html_Web Worker - Fatal编程技术网

Javascript HTML5WebWorker逻辑流

Javascript HTML5WebWorker逻辑流,javascript,html,web-worker,Javascript,Html,Web Worker,我有一个主要的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 (eve

我有一个主要的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]");
我对它们的实际工作原理仍然有点困惑。但结果是(按外观顺序):

他们说要开始工作,就要使用postmasage()

第一个问题: 那么,如果我的主js文件是postMessage(“鸣人”),为什么工作人员首先显示两个“佐助在哪里?”然后显示鸣人和樱花?它不是应该首先触发onMessage事件,因为它从主线程接收到数据吗

第二个问题:
当我发邮件(“鸣人”)时,它显示了两个“佐助在哪里?”。但为什么我在做postMessage(“Sakura”)时,它没有显示两个“佐助在哪里?”?我是说,我在主线程中调用了两次postMessage(),为什么只显示了两个“佐助在哪里?”?难道它不应该两次“执行”worker.js,从而看到四个“佐助在哪里?”?(请告诉我)

一些注释可以帮助你理解发生了什么

main.js

var worker = new Worker("../Scripts/worker.js");

// register handler, 
// code is executed only when a message is received from worker
worker.onmessage = function (event) {
    alert("Worker said : " + event.data);
};
// register onmessage handler , 
// code will not be executed at this point but only when you post a message
self.onmessage = function (event) {
      self.postMessage("Hi " + event.data);
};

// these are executed immediately
// they will be executed only once during the 'new Worker' part
self.postMessage("WHERE'S SASUKE? [1]");
self.postMessage("WHERE'S SASUKE? [2]");
worker.js

var worker = new Worker("../Scripts/worker.js");

// register handler, 
// code is executed only when a message is received from worker
worker.onmessage = function (event) {
    alert("Worker said : " + event.data);
};
// register onmessage handler , 
// code will not be executed at this point but only when you post a message
self.onmessage = function (event) {
      self.postMessage("Hi " + event.data);
};

// these are executed immediately
// they will be executed only once during the 'new Worker' part
self.postMessage("WHERE'S SASUKE? [1]");
self.postMessage("WHERE'S SASUKE? [2]");

一些注释可以帮助您理解发生了什么

main.js

var worker = new Worker("../Scripts/worker.js");

// register handler, 
// code is executed only when a message is received from worker
worker.onmessage = function (event) {
    alert("Worker said : " + event.data);
};
// register onmessage handler , 
// code will not be executed at this point but only when you post a message
self.onmessage = function (event) {
      self.postMessage("Hi " + event.data);
};

// these are executed immediately
// they will be executed only once during the 'new Worker' part
self.postMessage("WHERE'S SASUKE? [1]");
self.postMessage("WHERE'S SASUKE? [2]");
worker.js

var worker = new Worker("../Scripts/worker.js");

// register handler, 
// code is executed only when a message is received from worker
worker.onmessage = function (event) {
    alert("Worker said : " + event.data);
};
// register onmessage handler , 
// code will not be executed at this point but only when you post a message
self.onmessage = function (event) {
      self.postMessage("Hi " + event.data);
};

// these are executed immediately
// they will be executed only once during the 'new Worker' part
self.postMessage("WHERE'S SASUKE? [1]");
self.postMessage("WHERE'S SASUKE? [2]");

1/“他们说要开始工作,就要用postmasage()”谁说的?您已将主“线程”注册到工作活动,只需广播来自工作者的消息即可。2/看看你从主线程向工作者广播消息的位置,为什么每次你发送消息时工作者都会回答“佐助在哪里”,因为你的脚本没有这样做?生成工作区。代码第6行。我刚才也使用了这个术语,但是你知道它的意思,除了示例不是发布来自工作者的消息,这会启动工作者线程。因为你发布的是来自工作者的消息,工作者不必等待来自主线程的消息启动。它会在您发布来自工作线程或主线程的消息时立即启动。Mozilla网站上的评论只是说,一篇帖子启动了工作人员活动,而不是一篇“仅从主线程”发布的帖子。
佐助在哪里?
。。佐助正与奥内丸一起,试图找到村庄和忍者的意义!Hashirama(通过不纯世界转世)正在解释他。1/“他们说,要开始一个工人,就要使用postemasage()。”谁说?您已将主“线程”注册到工作活动,只需广播来自工作者的消息即可。2/看看你从主线程向工作者广播消息的位置,为什么每次你发送消息时工作者都会回答“佐助在哪里”,因为你的脚本没有这样做?生成工作区。代码第6行。我刚才也使用了这个术语,但是你知道它的意思,除了示例不是发布来自工作者的消息,这会启动工作者线程。因为你发布的是来自工作者的消息,工作者不必等待来自主线程的消息启动。它会在您发布来自工作线程或主线程的消息时立即启动。Mozilla网站上的评论只是说,一篇帖子启动了工作人员活动,而不是一篇“仅从主线程”发布的帖子。
佐助在哪里?
。。佐助正与奥内丸一起,试图找到村庄和忍者的意义!Hashirama(通过不纯世界转世)正在解释他。”//这些立即执行//在“新工人”部分“有意义”期间只执行一次..谢谢”//这些立即执行//在“新工人”部分“有意义”期间只执行一次..谢谢