2

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

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

有任何想法吗?

简而言之,我的问题是:

1. 一个worker内部可以同时进行多少个ajax调用?

2. 为什么我的worker内部的ajax调用被取消了?已解决

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

谢谢

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

4

1 回答 1

0

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

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

可能是服务器行为。另外,你试过没有网络工作者吗?

于 2012-06-22T23:12:27.383 回答