4
Can I load a web worker script from an absolute URL? - 这里的答案是否定的。Web Worker加载绝对URL
然而,有一个黑客,我发现反正做到这一点:
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完成工人。另一种选择是与内联工作者一起工作,但这更加丑陋,因为那样我就不得不将所有的代码放到一个巨大的字符串中。
有没有更好的方法来做到这一点?
谢谢。唯一的问题是我认为它比较慢。该代码将在额外的RTT后运行以获取脚本。我不喜欢优化浏览器。 – whadar