Google chrome 与Chrome相比,WebWorker在Firefox中的表现较慢

Google chrome 与Chrome相比,WebWorker在Firefox中的表现较慢,google-chrome,firefox,web-worker,Google Chrome,Firefox,Web Worker,主题。我有一个应用程序,我在其中生成一个WebWorker并使用它来解压缩内存中的文件。在WebWorker中,我访问内存中的归档文件并解压缩文件,然后将postMessage中的“Uint8Array”对象与postMessage一起返回到主线程 在Chrome中,它可以正常工作:文件从zip中提取出来后立即进入主线程。但在FireFox中有30秒的延迟,与我重写应用程序使用WebWorker之前的延迟相同。感觉FireFox有某种队列,只有在该队列为空后才会将结果返回主线程 我怀疑这样的队列

主题。我有一个应用程序,我在其中生成一个WebWorker并使用它来解压缩内存中的文件。在WebWorker中,我访问内存中的归档文件并解压缩文件,然后将postMessage中的“Uint8Array”对象与postMessage一起返回到主线程

在Chrome中,它可以正常工作:文件从zip中提取出来后立即进入主线程。但在FireFox中有30秒的延迟,与我重写应用程序使用WebWorker之前的延迟相同。感觉FireFox有某种队列,只有在该队列为空后才会将结果返回主线程

我怀疑这样的队列可能是从主线程到WebWorker的传入postMessages队列,但我不确定

在Firefox中有没有克服这个问题的方法

更新 我在WebWorker和onMessage中分别为postMessage和ReceiveMessage创建了发送和接收消息的日志

这就是我得到的:

铬:

火狐:

因此,基本上FireFox使用同步模型与WebWorker线程进行消息传递,而Chrome使用的是asycn模型


有人知道如何在使用JS的FireFox中为WebWorker线程启用异步吗?

你能发布一些显示这种行为的代码吗?30秒的延迟闻起来像垃圾收集。更新了原始问题