Web 工作者未使用 onclick
Web worker not working with onclick
我试图弄清楚 Web Workers 的行为,我有点困惑为什么输出仅在函数分配给 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>
工人.js
onmessage = function(){
postMessage("Well hello to you too.");
}
您的工作人员在您设置打开消息回调之前发送回复。因此,当您这样做worker.onmessage = ...
时,"Hello to you too"
消息已经消失了。
始终首先分配回调,这也适用于 XHR 请求和图像的onload
回调。这样做:
var worker = new Worker("worker.js");
worker.onmessage = function(event){
var message = event.data;
var output = document.getElementById("output");
output.value += "Worker says " + message + "'n";
}
worker.postMessage("hello");
我也不确定为什么你使用表单,当它是一个javascript程序并且你不想向服务器发送任何东西时......只需使用<div>
:
<div>
<button id="button" style="height:30px;">Say hello</button>
<input id="output" style="width:200px"></input>
</div>
如果您有<button>
<form>
它会发送表单并在您单击页面时重新加载页面 - 除非它是<button type="button">
。
相关文章:
- $rootScope未使用forEach进行更新
- 无法在现有状态转换期间更新-未使用任何非法的setState()
- 角度控制器未使用OcLazyLoad和ngRoute加载
- 绑定到 x 可编辑的成功函数未使用正确的参数执行
- 使用jQuery将单击绑定到页面中未使用的部分
- 未使用Javascript在IE中设置Cookie
- Ionic:AngularJS变量未使用$scope更新DOM
- 元素未使用当前玩家操作进行更新
- 将方法从控制器注入到未使用右变量调用的指令
- onClick无法使用Javascript函数
- LinkedIn共享链接图片未使用自定义url更新
- 地图视图未使用PhoneGap加载
- onclick在使用jquery附加时不触发提交输入
- 组件未使用ReactJS和React Router进行渲染
- 表单未使用 MVC 提交任何值 Asp.Net
- 短信未使用Branch.io和intl tel输入发送到intl号码
- 表列未使用tablesorter插件进行排序
- placeHolder id未使用style.display显示
- Web 工作者未使用 onclick
- 未使用JS闭包将变量传递给onClick函数