我的Scripts文件夹中有一个Worker.js文件和一个Subworker.js文件。创建一个worker没问题,我可以在调试器中单步执行它的代码;但是当我希望那个工人产生一个子工作时,它没有被创建,我无法单步执行调试器中的子工作程序代码文件。
In myPage.htm script block:
var worker = new Worker("Scripts/Worker.js"); // Succeeds
In Worker.js script file:
var subworker = new Worker("Subworker.js"); //without the folder name FAILS
IE10开发人员工具网络控制台显示:
URL....................Method...Result..Type.......................Received.......Taken......Initiator
/Scripts/Worker.js.....GET......200.....application/x-javascript...1.00KB..........<1ms......webworker
/Scripts/Subworker.js..GET......404.....text/html..................2.50KB..........239.29s...webworker
编辑:找到404错误的答案,尽管仍然无法实例化子工作:
var subworker = new Worker("..Subworker.js");
EDIT2:还发现以下技巧导致使用当前版本的脚本会产生400错误:
var subworker = new Worker("..Subworker.js?version=2.0");
答案 0 :(得分:0)
我在同一条船上。
我的计划是从另一个doamin或file://
协议加载一个子工作,因为你不能直接从常规的js脚本加载一个。我仍然需要对此进行测试,但我知道Workers/SharedWorkers
不受正常的跨源限制政策的约束,除了**,因为当你试图加载一个时(希望如此)只有在从window
脚本执行此操作时才会这样做。
另一种方法是使用window.postMessage
将消息转发给在另一个window
中创建的工作者。
或者,根据我的具体需求,我正在考虑在本地运行无头浏览器,CDN或启用了localhost
的{{1}}“永久服务器” - 但这很可能仍需要{ {1}}。
希望这有帮助,蒂姆!
如果找到答案,请回复,嗯?