我可以从绝对 URL 加载 Web Worker 脚本吗?- 这里的答案是否定的。
然而,无论如何我发现有一个黑客可以做到这一点:
var worker; //= new Worker('http://xyz/FSWorker.js');
var xhr = new XMLHttpRequest();
xhr.open("GET", 'http://xyz/FSWorker.js');
xhr.responseType = 'blob';
xhr.onload = function(e) {
var blob = this.response;
worker = new Worker(window.URL.createObjectURL(blob));
fs_ready(); // do more stuff here
};
xhr.send(null);
我不太喜欢这种方法——我现在必须在 XHR 完成后才开始使用 worker。另一种选择是使用 inline worker,但这更难看,因为我必须将所有代码放入一个巨大的字符串中。
有没有更好的方法来做到这一点?