【发布时间】:2020-10-23 09:34:12
【问题描述】:
我是这个网络工作者概念的新手,用于问题描述
- 从用户那里获取一个数字输入(小于 100)并将其保存到网络存储中。
- 创建一个 web worker 来增加数字直到它变成素数。
- 提供“开始”和“结束”两个按钮来启动或结束进程。
- 按“结束”后,增量停止,或者数字变为素数 - 以先发生者为准。
但在下面的代码中,checkprime 功能不起作用,请协助。
我在下面用 HTML 编码:
<form>
<input id="num" type="number" max="100" /></br><br/><br/>
<center>
<p> Result<output id="result"></output></p>
<button onclick="CheckPrime()">Start</button>
<button onclick="StopProcess()">Stop</button>
</center>
</form>
var w;
function CheckPrime() {
sessionStorage.inputNum = document.getElementById("num").value;
if (typeof(Worker) !== "undefined") {
if (typeof(w) == "undefined") {
w = new Worker("web.js");
}
w.onmessage = function(event) {
document.getElementById("result").innerHTML = event.data;
}
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support Web Workers...";
}
}
function StopProcess() {
alert("Process has been ended");
w.terminate();
w = undefined;
}
webworker.js
function p() {
var i;
n = sessionStorage.inputNum;
for (i = 2; i <= n - 1; i++) {
if (n % i == 0) {
n++;
}
}
postMessage("found prime" + n);
}
p();
【问题讨论】:
-
如果不知道“不起作用”是什么意思,将很难为您提供帮助。你读过How do I ask a good question吗?
-
checkprime 函数没有在浏览器中显示任何文本,只有 stopprocess 函数显示消息“进程已结束”。
标签: javascript web-worker