【发布时间】:2016-04-25 20:22:15
【问题描述】:
我正在尝试解决 Web Worker 的行为,但对于为什么输出仅在将函数分配给 window.onload 事件时才显示并保留消息以及为什么添加 alert()到函数的末尾会在单击“确定”之前暂时显示消息并且消息消失。
感谢任何帮助,谢谢。
<form>
<button id="button" style="height:30px;">Say hello</button>
<input id="output" style="width:200px"></input>
</form>
<script>
var button = document.getElementById("button");
button.onclick = function(){
var worker = new Worker("worker.js");
worker.postMessage("hello");
worker.onmessage = function(event){
var message = event.data;
var output = document.getElementById("output");
output.value = "Worker says " + message;
}
//alert("Message shows when this alert is here, but as "
// + "soon as you click ok...");
}
</script>
worker.js
onmessage = function(){
postMessage("Well hello to you too.");
}
【问题讨论】:
-
如果将
type="button"添加到<button>元素,worker 是否工作? -
订阅后发送消息;我猜此时工人的胆量非常快......
-
是的,type=button 已经修复了,这是为什么呢?还有 dandavis,您是否建议我将 worker.postMessage 放在 worker.onmessage 之后,或者这不会有太大区别吗?感谢您的修复,非常感谢您提供有关此行为的任何其他信息。
-
如果您不打算提交
<form>,请继续使用type="button"。
标签: javascript html web-worker