importScripts (web workers)
importScripts (web workers)
我尝试使用importScripts将第二个JavaScript文件加载到我的web worker中,但是虽然没有发生错误,但它不起作用。我把问题缩小到这个非常简单的情况:
在主HTML文件中:
<script>
var w = new Worker("script1.js");
w.addEventListener("message", function(e){
alert(e.data);
})
w.postMessage();
</script>
在script1.js: self.addEventListener("message", function(e){
var a = 5;
importScripts("script2.js");
self.postMessage(a);
})
在script2.js: a = 6
我希望看到一个显示6的对话框,因为通过导入script2.js将a从5更改为6,但对话框显示5。我遗漏了什么?
在函数中使用var a
意味着a
将始终是私有的。由于importScripts添加到全局作用域,JS更倾向于在发布a
的函数中访问更本地化的a
。您可以发布self.a
,它应该是6,正如您所期望的。
相关文章:
- Web Workers内部的CSS选择
- Web Workers-JSON的可传输对象
- 为什么没有更多地使用 Web Workers
- 是否可以在ChromeCast上的Web Workers中使用setTimout
- Web Workers:SetInterval 和 SetTimeout 可靠性
- Angular2 web workers with ES5
- 是否可以将Morris.js(RaphaelJS)与Web Workers相结合
- Web Workers文件是否可以处理包含或模块
- 创建一个允许HTML5 Web Workers从主线程访问DOM和其他对象的环境是可能的
- XMLHttpRequest和Web Workers访问控制源
- 如何在Javascript中使用Web Workers解析外部JSON文件
- 在使用Angular和Web Workers时从作用域中克隆元素出错
- 使用JavaScript Web Workers进行并行编程/同步
- Web Workers and JSON
- 使用Web Workers使用本地画布函数进行绘图
- importScripts (web workers)
- 为什么在2.2及更高版本中,HTML5 Web Workers支持从Android浏览器中移除?
- 如何通过Web-Workers传递自定义类实例
- JavaScript testing Web Workers
- HTML5 Web Workers可以在Firefox 4中工作,但不能在Chrome 12.0.742.122中工作