【问题标题】:Can't import javascript libaries into web worker无法将 JavaScript 库导入 Web Worker
【发布时间】:2013-06-28 01:44:00
【问题描述】:
我无法使用 importScripts() 将任何库导入我的 javascript Web Worker。当我导入自己单独的 javascript 文件时,它可以正常工作,但是当我尝试导入单独的库(例如 jquery 或easeljs)时,它会出现错误:
未捕获的 ReferenceError:文档未定义
然而,在我不断检查之后,它显然是正确定义的。任何人都知道出了什么问题。谢谢。
【问题讨论】:
标签:
javascript
import
web-worker
【解决方案1】:
这是因为 webworkers 不能引用 DOM,他们只能通过消息与调用者脚本进行通信。
jQuery 对 DOM 进行了显式引用,因此您不能在 webworker 中使用它。我建议你看看 jQuery 创建者 John Resig 关于 WebWorkers 的这篇博文:http://ejohn.org/blog/web-workers/
【解决方案2】:
Web Workers 对 DOM 对象和方法的访问权限非常有限,完全无法访问全局的 document 对象,这是 jQuery 和easeljs 都需要的。
我不能说画架,但是对于 jQuery,有一个 1.6.3 的端口,它是在没有 web worker 不安全代码的情况下编译的。可以找到here。