【问题标题】:Ajax Limits in Web WorkerWeb Worker 中的 Ajax 限制
【发布时间】:2012-05-24 15:50:03
【问题描述】:

我的 HTML5 应用程序使用网络工作者从画布上下文中分析图像的像素数据。一旦工作人员分析了数据,它就会向我的服务器进行 3 次 XHR 回调以更新我的模型。当我测试应用程序时,我能够像我尝试的那样启动和运行尽可能多的工作人员,并且每个工作人员只对服务器进行一次 XHR 回调。一切正常。

现在我尝试从一个工作人员发出三个异步调用,但我遇到了问题。查看 Chrome 的开发人员工具,我可以看到所有 3 个调用都被触发了,但它们都被取消了,除了最后一个。如果我使任何或所有调用异步,就会发生这种情况。但是,如果我使用计时器 (setTimeout) 将每个调用彼此相隔约 500 毫秒,它们都可以正常工作。

有什么想法吗?

简而言之,我的问题是:

1.一个worker可以同时调用多少个ajax?

2. 为什么 ajax 调用在我的工作人员内部被取消了?已解决

3. 与我手头的问题有点无关,但是您可以在单个页面中启动的最大工作人员数是多少?一旦我知道我不会向它发送任何消息,我应该停止它吗?

谢谢

更新: 结果我解决了异步调用被取消的问题。问题是我创建了自己的简单 ajax 类以在 worker 内部使用,而不是为每个调用实例化它,而是使用该对象的相同实例。因此,当我在之前的调用之后通过它进行后续调用时,如果在进行新调用之前它没有返回,那么第一个调用将被取消。希望这是有道理的。

【问题讨论】:

    标签: ajax performance html xmlhttprequest web-worker


    【解决方案1】:

    我已经尝试了 6 个没有 setTimeouts 的 diff ajax 调用,它对我来说很好用。

    您在最新的 chrome/safari 浏览器中仍然遇到同样的错误吗?

    可能是服务器行为。另外,您是否尝试过不使用 Web Worker?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 2011-06-17
      • 2017-02-01
      相关资源
      最近更新 更多