主题。我有一个应用程序,我在其中生成一个WebWorker并使用它来解压缩内存中的文件。我在每个文件中“postMessage”一条消息,在WebWorker中我访问内存存档并解压缩文件,并使用postMessage将“Uint8Array”对象返回给主线程。
在Chrome中它可以正常工作:文件一旦从zip中提取就会进入主线程。但是在FireFox中有30秒的延迟,与我重写应用程序以使用WebWorker之前的延迟相同。感觉FireFox有某种队列,只有在此队列为空后才将结果返回给主线程。
我怀疑这样的队列可能是从主线程到WebWorker的传入postMessages的队列,但我不确定。
有没有办法在Firefox中克服这个问题?
我在WebWorker中为postMessage发送了一条已发送和已接收消息的记录器,并在onMessage中收到了消息。
这就是我得到的:
Chrome:http://pastebin.com/7TUKwKZc
Firefox:http://pastebin.com/bSZ0yu33
所以基本上FireFox使用同步模型与WebWorker线程进行消息传递,而Chrome则使用asycn模型。
有人知道如何使用JS在FireFox中打开WebWorker线程的异步性吗?