我无法使用 importScripts() 将任何库导入我的 javascript Web Worker。当我导入自己单独的 javascript 文件时,它工作正常,但是当我尝试导入单独的库(例如 jquery 或easeljs)时,它给了我错误:Uncaught ReferenceError: document is not defined
但是,在我不断检查后,它显然是正确定义的。任何人都知道出了什么问题。谢谢你。
我无法使用 importScripts() 将任何库导入我的 javascript Web Worker。当我导入自己单独的 javascript 文件时,它工作正常,但是当我尝试导入单独的库(例如 jquery 或easeljs)时,它给了我错误:Uncaught ReferenceError: document is not defined
但是,在我不断检查后,它显然是正确定义的。任何人都知道出了什么问题。谢谢你。
原因是 webworkers 无法引用 DOM,他们只能通过消息与调用者脚本进行通信。jQuery 对 DOM 进行了显式引用,因此您不能在 webworker 中使用它。我建议你看看 jQuery 创建者 John Resig 关于 WebWorkers 的这篇博文:http: //ejohn.org/blog/web-workers/
Web Worker 对 DOM 对象和方法的访问权限非常有限,完全无法访问全局document
对象,这是 jQuery 和easeljs 都需要的。
我不能说画架,但是对于 jQuery,有一个 1.6.3 的端口,它是在没有 web worker 不安全代码的情况下编译的。可以在这里找到。