有没有一种方法可以在Web Worker和主线程之间传递大量数据(多个MB)?我在一个项目中需要下载文件,稍微修改一下,然后让用户下载修改后的文件。我找到了以下几种在Web Worker和主UI之间传递数据的方式:
我找到的最后一种方法是从Worker中使用
还有其他方法可以用于在Worker和主线程之间传输数据吗?
- 使用常规的
postMessage
方法。 - 使用可转移对象(仅限Chrome)
- 创建指向Blob的URL引用并仅发送URL(在Chrome中有效,在其他浏览器中也有效吗?)
我找到的最后一种方法是从Worker中使用
self.webkitURL
创建指向Blob的URL,然后仅将URL引用传递给UI。这很有效,我可以把URL给用户,他们就可以下载文件。不幸的是我在Firefox中没有找到这样做的方法,这有可能吗?还有其他方法可以用于在Worker和主线程之间传输数据吗?