关于JS Worker 对象的一点弱弱的问题
答案:2 悬赏:0 手机版
解决时间 2021-02-11 16:56
- 提问者网友:人傍凄凉立暮秋
- 2021-02-11 08:51
想问下, 可以 从worker对象向主线程发数据,不知道可不可以由主线程给worker发数据,来改变其相应的值呢?<br><br>代码如下,主线程接收WORKER发来的数字,点按钮可以停止或重新计数, 但是再点开始只能重新执行WORKER, 也就是重新计数了, 有没有办法可以保存上一次的数据,让计数从上次停止的地方再开始计数,我的想法能不能由主线程发送数据给WORKER,然后WORKER接收这个值以改变当前的状态 达到要求的效果?<br><br>但是找了半天没找到解法,求教了。<br><br>HTML:<br><!DOCTYPE html><br><html><br><head lang="en"><br> <meta charset="UTF-8"><br> <title></title><br> <script src="index.js"></script><br> <script src="count.js"></script><br></head><br><body><br> <div id="numDiv">0</div><br> <button id="start">Start</button><br> <button id="stop">Stop</button><br><br></body><br></html><br><br>主线程:<br>var numDiv,worker;<br>window.onload = function () {<br> numDiv = document.getElementById("numDiv");<br> document.getElementById("start").onclick = startWorker;<br> document.getElementById("stop").onclick = stopWorker;<br><br>}<br><br>function startWorker() {<br> if (worker) {<br> return;<br><br> }<br><br> worker = new Worker("count.js");<br> worker.onmessage = function (e) {<br> numDiv.innerHTML = e.data;<br> }<br>}<br><br>function stopWorker(){<br> if(worker){<br> worker.postMessage(10000);<br> worker.terminate();<br> worker = null;<br> }<br> else{alert("it is already stopped man!")}<br>}<br><br>WORKER:<br><br>var countNum = 0;<br>function count(){<br> onmessage = function (e) {<br> countNum = e;<br><br> }<br> postMessage(countNum);<br> countNum = countNum+100;<br> setTimeout(count,100);<br><br>}<br><br>count();
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-02-11 09:09
可以的
var worker =new Worker("worker.js"); //创建一个Worker对象并向它传递将在新线程中执行的脚本的URL
worker.postMessage("hello world"); //向worker发送数据
worker.onmessage =function(evt){ //接收worker传过来的数据函数
console.log(evt.data); //输出worker发送来的数据
}同样worker.js脚本中也可以通过postMessage向主线程发送消息,通过onmessage接收主线程发来的消息
var worker =new Worker("worker.js"); //创建一个Worker对象并向它传递将在新线程中执行的脚本的URL
worker.postMessage("hello world"); //向worker发送数据
worker.onmessage =function(evt){ //接收worker传过来的数据函数
console.log(evt.data); //输出worker发送来的数据
}同样worker.js脚本中也可以通过postMessage向主线程发送消息,通过onmessage接收主线程发来的消息
全部回答
- 1楼网友:猎心人
- 2021-02-11 10:00
你好!
你概念上有问题 你必须先把PHP数组赋给一个js数组
如有疑问,请追问。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯