为什么我不断收到此错误?
我应该可以使用这个全局函数吧?
http://www.html5rocks.com/en/tutorials/workers/basics/
我正在使用铬。
我正在使用 https://code.google.com/p/bitjs/ 它以
importScripts('io.js');
importScripts('archive.js');
原文由 netdigger 发布,翻译遵循 CC BY-SA 4.0 许可协议
为什么我不断收到此错误?
我应该可以使用这个全局函数吧?
http://www.html5rocks.com/en/tutorials/workers/basics/
我正在使用铬。
我正在使用 https://code.google.com/p/bitjs/ 它以
importScripts('io.js');
importScripts('archive.js');
原文由 netdigger 发布,翻译遵循 CC BY-SA 4.0 许可协议
当你创建一个 worker 时,它实际上被执行了两次。第一步是在全局“窗口”对象的上下文中(意味着您可以访问所有窗口对象函数)。第二次调用是在具有不同全局对象的 worker 的上下文中进行的,其中存在“importScripts”。
// proper initialization
if( 'function' === typeof importScripts) {
importScripts('script2.js');
addEventListener('message', onMessage);
function onMessage(e) {
// do some work here
}
}
注意 addEventListener 在 if 语句中。如果你把它放在它外面,你的回调将被注册两次。一次在全局“窗口”上,一次在工人全局上。
编码愉快!
原文由 SJ Anderson 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
此代码需要位于工作脚本中。工人本身是通过一个新的
Worker
对象创建的 - 请参阅 教程中的 入门。您链接的代码在 worker created here 中。