网络工作者处理AJAX调用-优化过度?

康拉德·德兹温内​​尔

我正在使用使用Web Workers处理所有AJAX请求的代码(如果有)。这些工作人员几乎只做XMLHttpRequest对象处理(没有额外的计算)。工作者创建的所有请求都是异步的(request.open("get",url,true))。

最近,我遇到了一些与此代码有关的问题,我开始怀疑是应该花时间修复此问题还是只是丢弃整个解决方案。

到目前为止,我的研究表明该代码实际上可能会损害性能。但是,我找不到任何可靠的消息来源来支持这一点。我仅有的两个发现是:

  • 2岁的jQuery功能建议使用网络工作者进行AJAX调用
  • 这个SO问题似乎询问了一些不同的东西(在Web Worker中使用同步请求与AJAX调用)

有人可以指出我这个问题的可靠消息来源吗?或者,是否有任何基准可以消除我的怀疑?

[编辑]当WebWorker还负责解析结果(JSON.parse时,这个问题会变得更加有趣异步解析是否提高了性能?

康拉德·德兹温内​​尔

为此在jsperf上创建了一个适当的基准取决于浏览器,WebWorker方法比原始ajax调用慢85-95%


笔记:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

nodejs集群工作者优化

来自分类Dev

是否可以从JavaScript网络工作者调用ActionScript函数?

来自分类Dev

网络工作者与承诺

来自分类Dev

网络工作者的错误

来自分类Dev

网络工作者的setTimeout

来自分类Dev

网络工作者的错误

来自分类Dev

网络工作者访问dom

来自分类Dev

BreezeJs和专门的网络工作者

来自分类Dev

自己班级的背景工作者处理

来自分类Dev

后台工作者异常处理

来自分类Dev

从多处理启动芹菜工作者

来自分类Dev

后台工作者异常处理

来自分类Dev

从多处理开始芹菜工作者

来自分类Dev

后台工作者的异常处理

来自分类Dev

未捕获的TypeError:无法调用null的方法“终止”(网络工作者)

来自分类Dev

优化查询-过度加载会占用过多内存

来自分类Dev

Java中网络调用和处理任务列表的优化编排

来自分类Dev

JS-网络工作者如何工作?

来自分类Dev

Ember-cli项目和网络工作者

来自分类Dev

使用网络角色和工作者角色

来自分类Dev

在网络工作者中使用Google地图对象?

来自分类Dev

使用网络工作者冻结对象

来自分类Dev

网络工作者和参考错误

来自分类Dev

什么是网络工作者以及何时使用它们

来自分类Dev

网络工作者是否使用演员模型?

来自分类Dev

网络工作者,茉莉花和爸爸解析

来自分类Dev

网络工作者未与React组件通信

来自分类Dev

如何让网络工作者同时执行多个任务?

来自分类Dev

确认并提示网络工作者的用户代码