我的 HTML5 应用程序使用网络工作者从画布上下文中分析图像的像素数据。一旦工作人员分析了数据,它就会向我的服务器发出 3 次 XHR 调用以更新我的模型。当我测试应用程序时,我能够像我尝试的那样启动和运行尽可能多的工作人员,并且每个工作人员只对服务器进行一次 XHR 回调。一切正常。
现在我尝试从一个工作人员发出三个异步调用,我遇到了问题。查看 Chrome 的开发者工具,我可以看到所有 3 个调用都被触发了,但它们都被取消了,除了最后一个。如果我使任何或所有调用异步,就会发生这种情况。但是,如果我使用计时器 (setTimeout) 将每个调用彼此相隔约 500 毫秒,它们都可以正常工作。
有任何想法吗?
简而言之,我的问题是:
1. 一个worker内部可以同时进行多少个ajax调用?
2. 为什么我的worker内部的ajax调用被取消了?(已解决)
3. 与我手头的问题稍微无关,但是您可以在单个页面中启动的最大工人数是多少?一旦我知道我不会向它发送任何消息,我应该停止工人吗?
谢谢
更新:原来我解决了异步调用被取消的问题。问题是我创建了自己的简单 ajax 类以在 worker 内部使用,而不是为每个调用实例化它,而是使用该对象的相同实例。因此,当我在之前的调用之后通过它进行后续调用时,如果在进行新调用之前它没有返回,那么第一个调用将被取消。希望这是有道理的。