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