与Chrome相比,WebWorker在Firefox中表现得更慢

时间:2016-03-28 15:50:01

标签: google-chrome firefox web-worker

主题。我有一个应用程序,我在其中生成一个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线程的异步性吗?

0 个答案:

没有答案