我为此在jsperf上创建了一个适当的基准。取决于浏览器, WebWorker方法 比原始ajax调用 慢85-95% 。
笔记:
- 由于每个请求的网络响应时间可能不同,因此我仅测试
new XMLHttpRequest()
和JSON.parse(jsonString);
。没有进行 真正的 AJAX调用。 - WebWorker的设置和拆卸操作 未 进行评估
- 请注意,我正在测试单个请求,对于多个同时请求,webworker方法的结果可能会更好
- 卡尔文·梅特卡夫(Calvin Metcalf)向我解释说,在jsperf上比较同步和异步不会给出准确的结果,因此他创建了另一个消除异步开销的基准。结果仍然表明,WebWorker方法的速度明显慢。
- 从Reddit讨论中,我了解到在主页和WebWorker之间传递的数据已复制,并且必须在此过程中进行序列化。因此,仅使用WebWorker进行解析没有多大意义,无论如何都必须先对数据进行序列化和反序列化,然后才能在主页上使用它们。



