我已经尝试使用 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,因为 a 通过导入 script2.js 从 5 更改为 6,但对话框显示 5。
在函数中使用var a
意味着a
将始终是私有的。由于importScripts adds to the global scope,JS 更喜欢访问发布a
的函数中更本地化的a
。您可以按预期发布self.a
。
编辑:最近有人问我这个人,所以我做了一个演示来澄清行为:http://pagedemos.com/importscript/
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(61条)